<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-10-15T02:48:13.595528" 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-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10">
<kw name="Start Mininet" owner="Utils" type="SETUP">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:13.991008" 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-10-15T02:48:13.990710" 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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:13.993345" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:13.993083" elapsed="0.000329"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:13.992960" elapsed="0.000481"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:48:13.993829" 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-10-15T02:48:13.993944" 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-10-15T02:48:13.993639" elapsed="0.000331"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:13.994483" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.55" 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-10-15T02:48:13.994141" elapsed="0.000390"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:48:13.995015" 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-10-15T02:48:13.994688" elapsed="0.000352"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:48:13.995967" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:48:13.996048" 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-10-15T02:48:13.995537" elapsed="0.000542"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:48:13.996223" elapsed="0.000375"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:48:13.997346" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:48:14.496772" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:47:32 UTC 2026

  System load:  0.08               Processes:             112
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-38703-72-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-10-15T02:48:13.997085" elapsed="0.499839"/>
</kw>
<msg time="2026-10-15T02:48:14.497016" 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-10-15T02:48:13.996739" elapsed="0.500366"/>
</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-10-15T02:48:13.995221" elapsed="0.501992"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:48:14.497720" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-10-15T02:48:15.728408" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:48:15.728834" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:48:15.728976" 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-10-15T02:48:14.497480" elapsed="1.231574"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:48:15.729498" elapsed="0.000626"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:15.731320" 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-10-15T02:48:15.730648" elapsed="0.000945"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:48:15.732140" elapsed="0.000057"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:48:15.731821" elapsed="0.000501"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:15.731744" elapsed="0.000656"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:48:15.732905" elapsed="0.000102"/>
</return>
<status status="PASS" start="2026-10-15T02:48:15.732610" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:15.732555" elapsed="0.000605"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:48:15.733236" elapsed="0.000064"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:48:15.734902" elapsed="0.000850"/>
</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-10-15T02:48:15.736190" elapsed="0.000419"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:48:15.736875" elapsed="0.000211"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:48:15.733993" elapsed="0.003212"/>
</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-10-15T02:48:13.992582" elapsed="1.744815"/>
</kw>
<msg time="2026-10-15T02:48:15.737539" 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-10-15T02:48:13.991906" elapsed="1.745751"/>
</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-10-15T02:48:13.991531" elapsed="1.746290"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:15.741865" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:15.741347" elapsed="0.000639"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:15.741303" elapsed="0.000738"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:48:15.742821" 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-10-15T02:48:15.743048" 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-10-15T02:48:15.742478" elapsed="0.000625"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:15.744524" 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.55" 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-10-15T02:48:15.743571" elapsed="0.001105"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:48:15.745983" 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-10-15T02:48:15.745047" elapsed="0.000993"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:48:15.747950" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:48:15.748131" 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-10-15T02:48:15.747295" elapsed="0.000887"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:48:15.748519" elapsed="0.000708"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:48:15.751113" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:48:16.152070" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:47:32 UTC 2026

  System load:  0.08               Processes:             112
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:48:14 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:48:15.750536" elapsed="0.401685"/>
</kw>
<msg time="2026-10-15T02:48:16.152385" 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-10-15T02:48:15.749617" elapsed="0.402862"/>
</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-10-15T02:48:15.746495" elapsed="0.406092"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:48:16.153019" 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-10-15T02:48:16.196587" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-10-15T02:48:16.196910" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:48:16.197023" 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-10-15T02:48:16.152815" elapsed="0.044258"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:48:16.197486" elapsed="0.000542"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:16.199068" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:16.198482" elapsed="0.000675"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:48:16.199652" elapsed="0.000035"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:48:16.199361" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:16.199306" 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-10-15T02:48:16.200097" elapsed="0.000068"/>
</return>
<status status="PASS" start="2026-10-15T02:48:16.199913" elapsed="0.000322"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:16.199881" elapsed="0.000431"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:48:16.200384" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:48:16.201765" elapsed="0.000678"/>
</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-10-15T02:48:16.202824" elapsed="0.000320"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:48:16.203420" 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-10-15T02:48:16.201007" elapsed="0.002759"/>
</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-10-15T02:48:15.740323" elapsed="0.463597"/>
</kw>
<msg time="2026-10-15T02:48:16.204025" 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-10-15T02:48:15.739001" elapsed="0.465127"/>
</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-10-15T02:48:15.738129" elapsed="0.466178"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:13.991249" elapsed="2.213186"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:48:16.205553" 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-10-15T02:48:16.204807" elapsed="0.000802"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:48:16.206694" level="INFO">${mininet_conn_id} = 5</msg>
<arg>${mininet_conn_id}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:48:16.205983" elapsed="0.000798"/>
</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-10-15T02:48:16.210044" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:48:16.210206" 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-10-15T02:48:16.209502" elapsed="0.000753"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:48:16.210550" elapsed="0.000392"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:48:16.211958" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:48:16.602911" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:47:32 UTC 2026

  System load:  0.08               Processes:             112
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:48:16 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:48:16.211639" elapsed="0.391543"/>
</kw>
<msg time="2026-10-15T02:48:16.603296" 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-10-15T02:48:16.211126" elapsed="0.392254"/>
</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-10-15T02:48:16.208677" elapsed="0.394821"/>
</kw>
<msg time="2026-10-15T02:48:16.603546" 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-10-15T02:48:16.207865" elapsed="0.395725"/>
</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-10-15T02:48:16.207108" elapsed="0.396546"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:48:16.604024" level="INFO">Executing command 'sudo ovs-vsctl set-manager ptcp:6644'.</msg>
<msg time="2026-10-15T02:48:16.627087" 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-10-15T02:48:16.603900" elapsed="0.023266"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:48:16.667369" level="INFO">sudo mn --controller=remote,ip=10.30.171.74 --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-10-15T02:48:16.627652" elapsed="0.039779"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:48:16.984667" level="INFO">[?2004l*** Creating network
*** Adding controller
Connecting to remote controller at 10.30.171.74: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-10-15T02:48:16.667594" elapsed="0.317291"/>
</kw>
<doc>Basic setup/cleanup work that can be done safely before any system
is run.</doc>
<status status="PASS" start="2026-10-15T02:48:13.989413" elapsed="2.995627"/>
</kw>
<suite id="s1-s1-s1" name="010 Restconf Inventory" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10/010_restconf_inventory.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-10-15T02:48:17.001845" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x777481083810&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-10-15T02:48:17.001516" elapsed="0.000542"/>
</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-10-15T02:48:17.465257" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:17.465629" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:17.465924" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:17.005666" elapsed="0.460313"/>
</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-10-15T02:48:17.466988" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:17.466213" elapsed="0.000901"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:17.468386" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:17.467622" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:17.467175" elapsed="0.001429"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:17.466151" elapsed="0.002505"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:17.469845" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:17.468953" elapsed="0.002744">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:17.472334" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:17.472005" elapsed="0.000561"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:17.471862" elapsed="0.000768"/>
</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-10-15T02:48:17.005283" elapsed="0.467563">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:19.486289" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:19.486427" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:19.486715" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:19.478903" elapsed="0.007878"/>
</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-10-15T02:48:19.487657" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:19.486988" elapsed="0.000789"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:19.488960" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:19.488207" elapsed="0.000867"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:19.487832" elapsed="0.001311"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:19.486932" elapsed="0.002255"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:19.489951" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:19.489532" elapsed="0.001346">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:19.491518" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:19.491150" elapsed="0.000489"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:19.491022" elapsed="0.000673"/>
</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-10-15T02:48:19.477929" elapsed="0.013964">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:21.504721" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:21.504851" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:21.505076" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:21.497773" elapsed="0.007356"/>
</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-10-15T02:48:21.505956" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:21.505345" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:21.507259" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:21.506561" elapsed="0.000963"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:21.506134" elapsed="0.001471"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:21.505300" elapsed="0.002353"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:21.508388" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:21.507949" elapsed="0.001246">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:21.509845" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:21.509531" elapsed="0.000430"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:21.509364" elapsed="0.000655"/>
</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-10-15T02:48:21.496843" elapsed="0.013376">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:23.523631" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:23.523783" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:23.524046" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:23.516689" elapsed="0.007424"/>
</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-10-15T02:48:23.524965" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:23.524337" elapsed="0.000756"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:23.526359" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:23.525609" elapsed="0.000894"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:23.525146" elapsed="0.001442"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:23.524256" elapsed="0.002377"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:23.527398" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:23.526939" elapsed="0.001316">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:23.528878" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:23.528570" elapsed="0.000423"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:23.528414" elapsed="0.000637"/>
</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-10-15T02:48:23.515745" elapsed="0.013519">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:25.538508" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:25.538589" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:25.538734" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:25.533350" elapsed="0.005423"/>
</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-10-15T02:48:25.539288" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:25.538962" elapsed="0.000382"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:25.539891" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:25.539558" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:25.539370" elapsed="0.000615"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:25.538937" elapsed="0.001076"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:25.540362" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:25.540157" elapsed="0.000604">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:25.541357" elapsed="0.000054"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:25.541008" elapsed="0.000520"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:25.540877" elapsed="0.000713"/>
</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-10-15T02:48:25.532694" elapsed="0.009089">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:27.554192" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:27.554350" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:27.554619" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:27.547580" elapsed="0.007095"/>
</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-10-15T02:48:27.555442" elapsed="0.000087"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:27.554854" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:27.556763" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:27.556023" elapsed="0.000857"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:27.555659" elapsed="0.001292"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:27.554811" elapsed="0.002186"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:27.557738" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:27.557318" elapsed="0.001213">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:27.559663" elapsed="0.000066"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:27.558842" elapsed="0.000965"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:27.558712" elapsed="0.001154"/>
</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-10-15T02:48:27.546636" elapsed="0.013420">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:48:27.560253" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:48:17.002689" elapsed="10.557909">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the inventory</doc>
<status status="FAIL" start="2026-10-15T02:48:17.002148" elapsed="10.558907">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:48:27.576417" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:27.576574" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:27.576786" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:27.570912" elapsed="0.005928"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:27.578063" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:27.577326" elapsed="0.000856"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:27.578956" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:27.578571" elapsed="0.001205">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:27.580138" 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-10-15T02:48:27.570098" elapsed="0.010314">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:29.591660" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:29.591743" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:29.591907" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:29.586150" elapsed="0.005807"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:29.592841" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:29.592272" elapsed="0.000649"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:29.593478" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:29.593147" elapsed="0.000890">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:29.594271" elapsed="0.000043"/>
</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-10-15T02:48:29.585472" elapsed="0.009061">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:31.608554" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:31.608672" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:31.608883" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:31.602197" elapsed="0.006743"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:31.610098" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:31.609392" elapsed="0.000819"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:31.610953" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:31.610573" elapsed="0.001176">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:31.612106" 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-10-15T02:48:31.601271" elapsed="0.011091">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:33.626957" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:33.627081" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:33.627355" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:33.620702" elapsed="0.006709"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:33.628659" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:33.627894" elapsed="0.000890"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:33.629574" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:33.629105" elapsed="0.001232">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:33.630748" 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-10-15T02:48:33.619778" elapsed="0.011317">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:35.639411" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:35.639488" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:35.639606" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:35.634818" elapsed="0.004814"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:35.640223" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:35.639855" elapsed="0.000421"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:35.640648" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:35.640443" elapsed="0.000589">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:35.641195" elapsed="0.000021"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-10-15T02:48:35.634327" elapsed="0.007010">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:37.656095" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:37.656218" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:37.656501" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:37.649377" elapsed="0.007184"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.657802" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:37.657021" elapsed="0.000903"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:37.658715" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:37.658255" elapsed="0.001289">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:37.659923" 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-10-15T02:48:37.648430" elapsed="0.011744">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:48:37.660522" level="FAIL">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:48:27.562762" elapsed="10.097967">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.663408" 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-10-15T02:48:37.662400" elapsed="0.001400"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="NOT RUN" start="2026-10-15T02:48:37.664250" elapsed="0.000060"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:48:37.663984" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:37.663938" elapsed="0.000478"/>
</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-10-15T02:48:37.664739" elapsed="0.000460"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.667726" level="FAIL">'6595' does not contain '-'</msg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="FAIL" start="2026-10-15T02:48:37.666259" elapsed="0.001596">'6595' does not contain '-'</status>
</kw>
<msg time="2026-10-15T02:48:37.668046" 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-10-15T02:48:37.665542" elapsed="0.002554"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.669120" 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-10-15T02:48:37.668443" elapsed="0.000731"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.670091" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:48:37.669517" elapsed="0.000628"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.671114" 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-10-15T02:48:37.670503" elapsed="0.000665"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.672147" 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: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message of the current test case.</doc>
<status status="PASS" start="2026-10-15T02:48:37.671495" elapsed="0.000750"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.673143" 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-10-15T02:48:37.672667" elapsed="0.000565"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.674557" level="INFO">Set tag 'https://bugs.opendaylight.org/show_bug.cgi?id=6595'.</msg>
<arg>${bug_url}</arg>
<doc>Adds The given `tags` for the current test or all tests in a suite.</doc>
<status status="PASS" start="2026-10-15T02:48:37.673848" elapsed="0.000807"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:37.673397" elapsed="0.001325"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:37.673359" elapsed="0.001415"/>
</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-10-15T02:48:37.661618" elapsed="0.013247"/>
</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-10-15T02:48:27.561614" elapsed="10.113345">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: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s1-s1-t3" name="Get node 1 inventory" line="50">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.677114" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:48:37.676282" elapsed="0.000890"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:37.690678" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:37.690791" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:37.691082" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:37.683900" elapsed="0.007236"/>
</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-10-15T02:48:37.691920" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:37.691330" elapsed="0.000704"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:37.693120" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:37.692495" elapsed="0.000738"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:37.692086" elapsed="0.001238"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:37.691263" elapsed="0.002107"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:37.694054" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:37.693686" elapsed="0.001138">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:37.695406" elapsed="0.000080"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:37.695097" elapsed="0.000463"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:37.694973" elapsed="0.000642"/>
</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-10-15T02:48:37.682955" elapsed="0.012845">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:39.708233" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:39.708372" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:39.708652" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:39.702132" elapsed="0.006574"/>
</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-10-15T02:48:39.709510" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:39.708885" elapsed="0.000744"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:39.710745" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:39.710030" elapsed="0.000829"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:39.709681" elapsed="0.001247"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:39.708843" elapsed="0.002129"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:39.711724" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:39.711255" elapsed="0.001257">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:39.713078" elapsed="0.000042"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:39.712790" elapsed="0.000400"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:39.712662" elapsed="0.000582"/>
</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-10-15T02:48:39.701050" elapsed="0.012421">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:41.726875" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:41.727027" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:41.727262" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:41.719994" elapsed="0.007564"/>
</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-10-15T02:48:41.728486" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:41.727763" elapsed="0.000851"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:41.730023" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:41.729096" elapsed="0.001047"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:41.728667" elapsed="0.001550"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:41.727716" elapsed="0.002561"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:41.731094" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:41.730687" elapsed="0.001239">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:41.732599" elapsed="0.000051"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:41.732199" elapsed="0.000525"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:41.732075" elapsed="0.000704"/>
</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-10-15T02:48:41.718768" elapsed="0.014203">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:43.746828" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:43.746987" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:43.747287" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:43.739755" elapsed="0.007642"/>
</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-10-15T02:48:43.748504" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:43.747687" elapsed="0.000973"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:43.749869" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:43.749133" elapsed="0.000852"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:43.748715" elapsed="0.001353"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:43.747627" elapsed="0.002505"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:43.751042" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:43.750620" elapsed="0.001239">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:43.756046" elapsed="0.000086"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:43.752145" elapsed="0.004087"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:43.752003" elapsed="0.004318"/>
</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-10-15T02:48:43.738315" elapsed="0.018316">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:45.770145" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:45.770323" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:45.770617" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:45.763436" elapsed="0.007243"/>
</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-10-15T02:48:45.771506" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:45.770867" elapsed="0.000762"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:45.772855" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:45.772077" elapsed="0.000911"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:45.771684" elapsed="0.001378"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:45.770821" elapsed="0.002287"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:45.773908" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:45.773491" elapsed="0.001434">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:45.775639" elapsed="0.000053"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:45.775232" elapsed="0.000536"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:45.775104" elapsed="0.000720"/>
</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-10-15T02:48:45.762283" elapsed="0.013738">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:47.788371" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:47.788526" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:47.788740" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:47.781980" elapsed="0.006815"/>
</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-10-15T02:48:47.789691" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:47.789072" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:47.790911" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:47.790211" elapsed="0.000813"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:47.789860" elapsed="0.001234"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:47.789029" elapsed="0.002108"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:47.791905" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:47.791517" elapsed="0.001167">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:47.793238" elapsed="0.000042"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:47.792946" elapsed="0.000426"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:47.792824" elapsed="0.000604"/>
</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-10-15T02:48:47.780886" elapsed="0.012762">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:48:47.793831" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:48:37.677610" elapsed="10.116407">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-10-15T02:48:37.675429" elapsed="10.118937">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s1-s1-t4" name="Get node 2 inventory" line="61">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:48:47.796822" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:48:47.795939" elapsed="0.000942"/>
</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-10-15T02:48:47.810239" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:47.810372" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:47.810617" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:47.803861" elapsed="0.006810"/>
</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-10-15T02:48:47.811425" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:47.810843" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:47.812654" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:47.811974" elapsed="0.000795"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:47.811624" elapsed="0.001294"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:47.810802" elapsed="0.002165"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:47.813680" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:47.813257" elapsed="0.001152">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:47.814983" elapsed="0.000042"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:47.814698" elapsed="0.000397"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:47.814581" 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-10-15T02:48:47.802855" elapsed="0.012500">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:49.827701" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:49.827816" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:49.828028" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:49.821270" elapsed="0.006812"/>
</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-10-15T02:48:49.828857" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:49.828257" elapsed="0.000715"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:49.830075" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:49.829401" elapsed="0.000787"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:49.829023" elapsed="0.001236"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:49.828216" elapsed="0.002105"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:49.831009" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:49.830636" elapsed="0.001133">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:49.832326" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:49.832020" elapsed="0.000418"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:49.831905" elapsed="0.000615"/>
</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-10-15T02:48:49.820207" elapsed="0.012497">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:51.845330" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:51.845491" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:51.845809" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:51.838655" elapsed="0.007211"/>
</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-10-15T02:48:51.846674" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:51.846045" elapsed="0.000749"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:51.847926" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:51.847204" elapsed="0.000839"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:51.846848" elapsed="0.001268"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:51.846003" elapsed="0.002159"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:51.848902" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:51.848511" elapsed="0.001625">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:51.850750" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:51.850426" elapsed="0.000444"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:51.850281" elapsed="0.000643"/>
</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-10-15T02:48:51.837550" elapsed="0.013562">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:53.863964" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:53.864112" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:53.864351" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:53.857433" elapsed="0.006975"/>
</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-10-15T02:48:53.865176" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:53.864625" elapsed="0.000665"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:53.866439" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:53.865762" elapsed="0.000826"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:53.865376" elapsed="0.001285"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:53.864582" elapsed="0.002125"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:53.867398" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:53.866998" elapsed="0.001387">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:53.869025" elapsed="0.000053"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:53.868680" elapsed="0.000491"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:53.868561" elapsed="0.000669"/>
</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-10-15T02:48:53.856335" elapsed="0.013228">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:55.883052" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:55.883191" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:55.883495" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:55.876178" elapsed="0.007379"/>
</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-10-15T02:48:55.884395" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:55.883758" elapsed="0.000797"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:55.885782" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:55.884999" elapsed="0.000906"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:55.884613" elapsed="0.001367"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:55.883711" elapsed="0.002318"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:55.886801" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:55.886362" elapsed="0.001275">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:55.888223" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:55.887911" elapsed="0.000455"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:55.887785" elapsed="0.000640"/>
</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-10-15T02:48:55.875005" elapsed="0.013654">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:57.902073" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:57.902199" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:57.902498" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:57.895229" elapsed="0.007328"/>
</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-10-15T02:48:57.903367" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:57.902746" elapsed="0.000767"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:57.904658" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:57.903933" elapsed="0.000840"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:57.903568" elapsed="0.001273"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:57.902700" elapsed="0.002186"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:57.905694" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:57.905262" elapsed="0.001172">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:57.907006" elapsed="0.000042"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:57.906714" elapsed="0.000403"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:57.906597" elapsed="0.000574"/>
</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-10-15T02:48:57.894152" elapsed="0.013226">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:48:57.907586" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:48:47.797276" elapsed="10.110494">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-10-15T02:48:47.794974" elapsed="10.113124">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s1-s1-t5" name="Get node 3 inventory" line="72">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:48:57.910590" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:48:57.909734" elapsed="0.000914"/>
</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-10-15T02:48:57.922535" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:57.922646" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:57.922848" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:57.917017" elapsed="0.005883"/>
</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-10-15T02:48:57.923656" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:57.923063" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:57.924839" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:57.924165" elapsed="0.000785"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:57.923823" elapsed="0.001195"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:57.923023" elapsed="0.002040"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:57.925761" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:57.925369" elapsed="0.001135">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:57.927058" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:57.926757" elapsed="0.000413"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:57.926641" elapsed="0.000583"/>
</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-10-15T02:48:57.916066" elapsed="0.011361">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:59.935636" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:48:59.935696" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:48:59.935819" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:48:59.930867" elapsed="0.004976"/>
</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-10-15T02:48:59.936227" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:48:59.935943" elapsed="0.000338"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:48:59.936855" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:48:59.936523" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-15T02:48:59.936307" elapsed="0.000633"/>
</branch>
<status status="PASS" start="2026-10-15T02:48:59.935920" elapsed="0.001040"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:48:59.937283" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:48:59.937092" elapsed="0.000586">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:48:59.937944" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:48:59.937803" elapsed="0.000192"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:48:59.937746" elapsed="0.000274"/>
</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-10-15T02:48:59.930297" elapsed="0.007814">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:01.950364" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:01.950531" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:01.950750" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:01.944095" elapsed="0.006709"/>
</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-10-15T02:49:01.951622" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:01.950982" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:01.952867" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:01.952144" elapsed="0.000838"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:01.951793" elapsed="0.001338"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:01.950940" elapsed="0.002243"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:01.953915" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:01.953528" elapsed="0.001158">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:01.955232" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:01.954941" elapsed="0.000431"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:01.954825" 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-10-15T02:49:01.943001" elapsed="0.012643">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:03.970210" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:03.970408" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:03.970769" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:03.962599" elapsed="0.008250"/>
</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-10-15T02:49:03.972005" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:03.971113" elapsed="0.001050"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:03.973913" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:03.972848" elapsed="0.001254"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:03.972230" elapsed="0.001973"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:03.971051" elapsed="0.003232"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:03.975375" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:03.974784" elapsed="0.001707">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:03.977364" elapsed="0.000068"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:03.976884" elapsed="0.000679"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:03.976697" elapsed="0.000943"/>
</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-10-15T02:49:03.961068" elapsed="0.016838">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:05.991847" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:05.991975" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:05.992403" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:05.985070" elapsed="0.007432"/>
</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-10-15T02:49:05.993535" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:05.992702" elapsed="0.000968"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:05.994965" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:05.994125" elapsed="0.001021"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:05.993740" elapsed="0.001508"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:05.992653" elapsed="0.002650"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:05.996119" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:05.995684" elapsed="0.001301">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:05.997675" elapsed="0.000059"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:05.997313" elapsed="0.000509"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:05.997160" elapsed="0.000717"/>
</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-10-15T02:49:05.983966" elapsed="0.014106">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:08.010710" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:08.010826" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:08.011059" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:08.004025" elapsed="0.007090"/>
</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-10-15T02:49:08.011906" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:08.011290" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:08.013165" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:08.012488" elapsed="0.000803"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:08.012071" elapsed="0.001309"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:08.011249" elapsed="0.002179"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:08.014164" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:08.013760" elapsed="0.001239">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:08.015593" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:08.015252" elapsed="0.000454"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:08.015137" elapsed="0.000621"/>
</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-10-15T02:49:08.002902" elapsed="0.013039">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:49:08.016206" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:48:57.911038" elapsed="10.105381">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-10-15T02:48:57.908811" elapsed="10.107965">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s1-s1-t6" name="Link Down" line="83">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:49:08.022762" 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-10-15T02:49:08.018299" elapsed="0.004576"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:49:08.026974" 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-10-15T02:49:08.023180" elapsed="0.003902"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:49:08.028010" level="INFO">@{list} = [ "link-down":true ]</msg>
<var>@{list}</var>
<arg>"link-down":true</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:49:08.027389" elapsed="0.000674"/>
</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-10-15T02:49:08.040881" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:08.040989" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:08.041188" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:08.034757" elapsed="0.006484"/>
</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-10-15T02:49:08.041983" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:08.041428" elapsed="0.000665"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:08.043149" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:08.042544" elapsed="0.000717"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:08.042144" elapsed="0.001205"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:08.041388" elapsed="0.002007"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:08.044059" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:08.043704" elapsed="0.001088">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:08.045303" elapsed="0.000065"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:08.045032" elapsed="0.000406"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:08.044924" elapsed="0.000594"/>
</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-10-15T02:49:08.033813" elapsed="0.011885">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:10.058866" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:10.059014" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:10.059361" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:10.051753" elapsed="0.007665"/>
</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-10-15T02:49:10.060266" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:10.059646" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:10.061616" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:10.060850" elapsed="0.000882"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:10.060486" elapsed="0.001317"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:10.059599" elapsed="0.002248"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:10.062557" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:10.062133" elapsed="0.001170">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:10.063903" elapsed="0.000042"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:10.063615" elapsed="0.000400"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:10.063499" elapsed="0.000568"/>
</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-10-15T02:49:10.050656" elapsed="0.013597">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:12.072782" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:12.072857" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:12.072965" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:12.067210" elapsed="0.005781"/>
</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-10-15T02:49:12.073415" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:12.073096" elapsed="0.000390"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:12.074007" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:12.073682" elapsed="0.000380"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:12.073512" elapsed="0.000582"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:12.073063" elapsed="0.001052"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:12.074442" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:12.074245" elapsed="0.000806">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:12.075312" elapsed="0.000033"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:12.075172" elapsed="0.000206"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:12.075116" 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-10-15T02:49:12.066673" elapsed="0.008829">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:14.084723" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:14.084799" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:14.084950" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:14.079671" elapsed="0.005318"/>
</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-10-15T02:49:14.085565" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:14.085118" elapsed="0.000534"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:14.086399" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:14.085938" elapsed="0.000557"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:14.085694" elapsed="0.000849"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:14.085088" elapsed="0.001484"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:14.087009" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:14.086756" elapsed="0.000766">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:14.087876" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:14.087682" elapsed="0.000266"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:14.087609" 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-10-15T02:49:14.078938" elapsed="0.009166">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:16.096729" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:16.096808" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:16.096975" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:16.091832" elapsed="0.005188"/>
</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-10-15T02:49:16.097592" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:16.097129" elapsed="0.000543"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:16.098525" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:16.097985" elapsed="0.000727"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:16.097728" elapsed="0.001033"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:16.097104" elapsed="0.001699"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:16.099245" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:16.098992" elapsed="0.000676">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:16.099983" elapsed="0.000026"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:16.099831" elapsed="0.000212"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:16.099752" elapsed="0.000317"/>
</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-10-15T02:49:16.091186" elapsed="0.009002">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:18.108894" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:18.108959" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:18.109085" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:18.103469" elapsed="0.005641"/>
</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-10-15T02:49:18.109546" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:18.109207" elapsed="0.000395"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:18.110130" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:18.109799" elapsed="0.000382"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:18.109626" elapsed="0.000586"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:18.109184" elapsed="0.001048"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:18.110574" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:18.110375" elapsed="0.000561">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:18.111194" elapsed="0.000019"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:18.111055" elapsed="0.000190"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:18.111000" elapsed="0.000268"/>
</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-10-15T02:49:18.102930" elapsed="0.008443">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:49:18.111476" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:08.028439" elapsed="10.083122">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:18.111744" elapsed="0.000080"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-10-15T02:49:08.017435" elapsed="10.094540">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s1-s1-t7" name="Link Up" line="101">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:49:18.114845" 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-10-15T02:49:18.112683" elapsed="0.002222"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:49:18.119968" 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-10-15T02:49:18.115053" elapsed="0.004968"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:49:18.120500" level="INFO">@{list} = [ "link-down":false ]</msg>
<var>@{list}</var>
<arg>"link-down":false</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:49:18.120156" elapsed="0.000369"/>
</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-10-15T02:49:18.127796" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:18.127853" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:18.127954" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:18.123441" elapsed="0.004537"/>
</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-10-15T02:49:18.128356" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:18.128064" elapsed="0.000345"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:18.128936" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:18.128627" elapsed="0.000362"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:18.128433" elapsed="0.000586"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:18.128043" elapsed="0.000997"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:18.129367" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:18.129168" elapsed="0.000568">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:18.129994" elapsed="0.000019"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:18.129859" elapsed="0.000185"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:18.129802" elapsed="0.000266"/>
</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-10-15T02:49:18.122995" elapsed="0.007159">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:20.139895" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:20.139959" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:20.140139" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:20.134541" elapsed="0.005625"/>
</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-10-15T02:49:20.140598" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:20.140266" elapsed="0.000388"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:20.141203" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:20.140870" elapsed="0.000389"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:20.140680" elapsed="0.000612"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:20.140243" elapsed="0.001071"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:20.141686" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:20.141482" elapsed="0.000609">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:20.142473" elapsed="0.000034"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:20.142247" elapsed="0.000309"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:20.142174" elapsed="0.000420"/>
</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-10-15T02:49:20.133763" elapsed="0.008961">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:22.155978" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:22.156096" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:22.156309" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:22.148660" elapsed="0.007733"/>
</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-10-15T02:49:22.157160" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:22.156604" elapsed="0.000671"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:22.158435" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:22.157745" elapsed="0.000841"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:22.157327" elapsed="0.001331"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:22.156561" elapsed="0.002143"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:22.159390" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:22.158991" elapsed="0.001143">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:22.160730" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:22.160410" elapsed="0.000436"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:22.160269" elapsed="0.000631"/>
</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-10-15T02:49:22.147589" elapsed="0.013493">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:24.174068" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:24.174224" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:24.174556" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:24.167379" elapsed="0.007240"/>
</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-10-15T02:49:24.175480" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:24.174801" elapsed="0.000837"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:24.177097" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:24.176137" elapsed="0.001115"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:24.175713" elapsed="0.001660"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:24.174759" elapsed="0.002680"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:24.178595" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:24.177874" elapsed="0.001861">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:24.181230" elapsed="0.000055"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:24.180259" elapsed="0.001132"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:24.179928" elapsed="0.001550"/>
</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-10-15T02:49:24.166168" elapsed="0.015508">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:26.194852" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:26.194972" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:26.195191" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:26.187799" elapsed="0.007465"/>
</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-10-15T02:49:26.196197" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:26.195506" elapsed="0.000830"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:26.197565" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:26.196822" elapsed="0.000952"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:26.196406" elapsed="0.001457"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:26.195432" elapsed="0.002478"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:26.198639" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:26.198215" elapsed="0.001162">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:26.199951" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:26.199659" elapsed="0.000405"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:26.199542" elapsed="0.000574"/>
</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-10-15T02:49:26.186729" elapsed="0.013574">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:28.213676" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:28.213798" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:28.214018" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:28.206581" elapsed="0.007491"/>
</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-10-15T02:49:28.214882" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:28.214252" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:28.216122" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:28.215438" elapsed="0.000801"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:28.215049" elapsed="0.001260"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:28.214211" elapsed="0.002165"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:28.217091" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:28.216718" elapsed="0.001143">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:28.218424" elapsed="0.000070"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:28.218108" elapsed="0.000457"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:28.217996" elapsed="0.000620"/>
</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-10-15T02:49:28.205512" elapsed="0.013286">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:49:28.218979" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:18.120698" elapsed="10.098465">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:28.219606" elapsed="0.000128"/>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-10-15T02:49:18.112302" elapsed="10.107741">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:49:28.221295" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:49:28.221135" elapsed="0.000355"/>
</kw>
<doc>Test suite for RESTCONF inventory</doc>
<status status="FAIL" start="2026-10-15T02:48:16.985145" elapsed="71.236418"/>
</suite>
<suite id="s1-s1-s2" name="020 Restconf Topology" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10/020_restconf_topology.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-10-15T02:49:28.251834" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/json'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77748071ac10&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-10-15T02:49:28.251430" elapsed="0.000626"/>
</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-10-15T02:49:28.264241" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:28.264322" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:28.264535" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:28.256849" elapsed="0.007724"/>
</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-10-15T02:49:28.265098" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:28.264703" elapsed="0.000473"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:28.265914" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:28.265481" elapsed="0.000509"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:28.265212" elapsed="0.000825"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:28.264671" elapsed="0.001397"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:28.266553" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:28.266260" elapsed="0.000795">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:28.267439" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:28.267228" elapsed="0.000307"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:28.267149" elapsed="0.000422"/>
</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-10-15T02:49:28.256293" elapsed="0.011407">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:30.280269" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:30.280406" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:30.280765" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:30.273374" elapsed="0.007446"/>
</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-10-15T02:49:30.281634" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:30.281003" elapsed="0.000744"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:30.282865" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:30.282150" elapsed="0.000835"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:30.281799" elapsed="0.001256"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:30.280962" elapsed="0.002137"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:30.283850" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:30.283433" elapsed="0.001192">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:30.285161" elapsed="0.000042"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:30.284875" elapsed="0.000399"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:30.284762" elapsed="0.000564"/>
</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-10-15T02:49:30.272468" elapsed="0.013092">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:32.295206" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:32.295279" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:32.295612" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:32.289777" elapsed="0.005869"/>
</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-10-15T02:49:32.296106" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:32.295763" elapsed="0.000418"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:32.296868" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:32.296468" elapsed="0.000467"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:32.296220" elapsed="0.000755"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:32.295735" elapsed="0.001266"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:32.297436" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:32.297175" elapsed="0.000724">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:32.298240" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:32.298056" elapsed="0.000257"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:32.297982" elapsed="0.000366"/>
</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-10-15T02:49:32.289146" elapsed="0.009344">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:34.310960" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:34.311180" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:34.311442" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:34.304195" elapsed="0.007337"/>
</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-10-15T02:49:34.312264" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:34.311711" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:34.313542" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:34.312842" elapsed="0.000818"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:34.312486" elapsed="0.001243"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:34.311668" elapsed="0.002106"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:34.314495" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:34.314065" elapsed="0.001150">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:34.315813" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:34.315522" elapsed="0.000408"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:34.315376" elapsed="0.000608"/>
</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-10-15T02:49:34.303256" elapsed="0.012910">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:36.328941" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:36.329064" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:36.329287" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:36.322003" elapsed="0.007339"/>
</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-10-15T02:49:36.330180" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:36.329591" elapsed="0.000707"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:36.331581" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:36.330809" elapsed="0.000901"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:36.330384" elapsed="0.001406"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:36.329548" elapsed="0.002291"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:36.332628" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:36.332153" elapsed="0.001284">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:36.334065" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:36.333746" elapsed="0.000544"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:36.333616" elapsed="0.000735"/>
</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-10-15T02:49:36.321046" elapsed="0.013566">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:38.348319" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:38.348509" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:38.348755" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:49:38.341160" elapsed="0.007650"/>
</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-10-15T02:49:38.349619" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:49:38.348994" elapsed="0.000744"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.350870" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:49:38.350143" elapsed="0.000844"/>
</kw>
<status status="PASS" start="2026-10-15T02:49:38.349793" elapsed="0.001266"/>
</branch>
<status status="PASS" start="2026-10-15T02:49:38.348951" elapsed="0.002154"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:38.351851" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:49:38.351419" elapsed="0.001232">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:38.353199" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:49:38.352909" elapsed="0.000404"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:49:38.352793" elapsed="0.000591"/>
</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-10-15T02:49:38.340167" elapsed="0.013434">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:49:38.353916" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:28.252973" elapsed="10.101132">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:38.354476" elapsed="0.000048"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:38.354906" elapsed="0.000041"/>
</kw>
<doc>Get RESTCONF Topology and validate the result.</doc>
<status status="FAIL" start="2026-10-15T02:49:28.252180" elapsed="10.103055">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s1-s2-t2" name="List all the links" line="31">
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.359037" 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-10-15T02:49:38.357881" elapsed="0.001216"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.360165" 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-10-15T02:49:38.359512" elapsed="0.000709"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.361424" 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-10-15T02:49:38.360625" elapsed="0.000974"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.362711" 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 the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:49:38.361992" elapsed="0.000810"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.363900" 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-10-15T02:49:38.363154" elapsed="0.000802"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.365002" 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-10-15T02:49:38.364312" elapsed="0.000745"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.366240" 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-10-15T02:49:38.365439" elapsed="0.000859"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.367341" 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 the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:49:38.366725" elapsed="0.000756"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.368508" 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-10-15T02:49:38.367826" elapsed="0.000832"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.369702" 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-10-15T02:49:38.369014" elapsed="0.000744"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.370920" 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-10-15T02:49:38.370107" elapsed="0.000870"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.372017" 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 the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:49:38.371349" elapsed="0.000756"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.373121" 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-10-15T02:49:38.372493" elapsed="0.000681"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.374194" 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-10-15T02:49:38.373573" elapsed="0.000674"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.375424" 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-10-15T02:49:38.374648" elapsed="0.000860"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.376535" 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 the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:49:38.375882" elapsed="0.000741"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:49:38.377653" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:49:38.376897" elapsed="0.000813"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:38.386703" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:38.386813" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:38.387093" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:38.379821" elapsed="0.008482">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:38.388797" 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-10-15T02:49:38.389205" elapsed="0.000048"/>
</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-10-15T02:49:38.389671" elapsed="0.000042"/>
</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-10-15T02:49:38.389998" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:38.390338" elapsed="0.000059"/>
</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-10-15T02:49:38.390727" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:38.391255" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:38.390988" elapsed="0.000398"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:38.390874" elapsed="0.000569"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:38.379150" elapsed="0.012514">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:40.401352" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:40.401529" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:40.401761" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:40.394259" elapsed="0.008558">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:40.403288" 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-10-15T02:49:40.403749" elapsed="0.000049"/>
</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-10-15T02:49:40.404164" elapsed="0.000040"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:40.404535" elapsed="0.000042"/>
</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-10-15T02:49:40.404877" elapsed="0.000038"/>
</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-10-15T02:49:40.405198" elapsed="0.000038"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:40.405757" elapsed="0.000042"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:40.405493" elapsed="0.000372"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:40.405337" elapsed="0.000581"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:40.392676" elapsed="0.013427">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:42.414892" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:42.415017" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:42.415342" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:42.407737" elapsed="0.008502">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:42.416758" 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-10-15T02:49:42.417173" elapsed="0.000049"/>
</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-10-15T02:49:42.417643" 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-10-15T02:49:42.417974" elapsed="0.000041"/>
</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-10-15T02:49:42.418317" elapsed="0.000040"/>
</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-10-15T02:49:42.418700" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:42.419226" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:42.418958" elapsed="0.000378"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:42.418844" elapsed="0.000571"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:42.406925" elapsed="0.012715">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:44.429119" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:44.429243" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:44.429523" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:44.421281" elapsed="0.009113">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:44.430890" 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-10-15T02:49:44.431301" elapsed="0.000050"/>
</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-10-15T02:49:44.431780" 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-10-15T02:49:44.432109" elapsed="0.000041"/>
</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-10-15T02:49:44.432500" 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-10-15T02:49:44.432834" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:44.433358" elapsed="0.000066"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:44.433091" elapsed="0.000428"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:44.432978" elapsed="0.000596"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:44.420425" elapsed="0.013356">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:46.442170" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:46.442297" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:46.442679" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:46.435403" elapsed="0.008796">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:46.444885" 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-10-15T02:49:46.445426" elapsed="0.000108"/>
</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-10-15T02:49:46.445927" elapsed="0.000042"/>
</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-10-15T02:49:46.446252" elapsed="0.000039"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:46.446709" 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-10-15T02:49:46.447112" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:46.447801" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:46.447515" elapsed="0.000398"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:46.447318" elapsed="0.000651"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:46.434591" elapsed="0.013594">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:48.457079" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:48.457204" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:48.457487" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:48.449904" elapsed="0.008445">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.458911" elapsed="0.000050"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.459331" elapsed="0.000075"/>
</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-10-15T02:49:48.459813" 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-10-15T02:49:48.460268" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.460654" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.460983" elapsed="0.000039"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.461558" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:48.461243" elapsed="0.000429"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:48.461127" elapsed="0.000599"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:48.449021" elapsed="0.012898">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:49:48.462237" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:38.378075" elapsed="10.084451">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>List all the links in the topology.</doc>
<status status="FAIL" start="2026-10-15T02:49:38.356272" elapsed="10.106589">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s1-s2-t3" name="Link Down" line="52">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:49:48.470043" 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-10-15T02:49:48.465046" elapsed="0.005132"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:49:48.473436" 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-10-15T02:49:48.470567" elapsed="0.003016"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:49:48.474724" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:49:48.473883" elapsed="0.000901"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:48.484667" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:48.484786" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:48.485029" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:48.477202" elapsed="0.008807">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.486501" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.486911" elapsed="0.000050"/>
</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-10-15T02:49:48.487327" elapsed="0.000040"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.487765" elapsed="0.000042"/>
</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-10-15T02:49:48.488140" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.488525" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:48.489062" elapsed="0.000041"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:48.488790" elapsed="0.000381"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:48.488674" elapsed="0.000551"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:48.476563" elapsed="0.012929">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:50.498563" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:50.498702" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:50.498965" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:50.491206" elapsed="0.008765">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:50.500565" elapsed="0.000149"/>
</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-10-15T02:49:50.501147" 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-10-15T02:49:50.501668" 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-10-15T02:49:50.502029" elapsed="0.000043"/>
</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-10-15T02:49:50.502421" elapsed="0.000072"/>
</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-10-15T02:49:50.502807" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:50.503407" elapsed="0.000080"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:50.503088" elapsed="0.000477"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:50.502961" elapsed="0.000662"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:50.490274" elapsed="0.013559">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:52.512093" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:52.512222" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:52.512507" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:52.505531" elapsed="0.007832">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:52.513920" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:49:52.514354" elapsed="0.000078"/>
</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-10-15T02:49:52.514843" 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-10-15T02:49:52.515177" 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-10-15T02:49:52.515589" 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-10-15T02:49:52.515929" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:52.516505" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:52.516192" elapsed="0.000426"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:52.516075" elapsed="0.000597"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:52.504658" elapsed="0.012208">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:54.525601" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:54.525756" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:54.526125" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:54.518632" elapsed="0.008472">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:54.527705" elapsed="0.000054"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:49:54.528203" 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-10-15T02:49:54.528738" 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-10-15T02:49:54.529107" elapsed="0.000056"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:54.529554" 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-10-15T02:49:54.529958" elapsed="0.000051"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:54.530613" elapsed="0.000049"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:54.530263" elapsed="0.000473"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:54.530128" elapsed="0.000667"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:54.517749" elapsed="0.013258">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:56.538172" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:56.538273" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:56.538839" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:56.532286" elapsed="0.007189">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:56.539845" elapsed="0.000033"/>
</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-10-15T02:49:56.540140" 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-10-15T02:49:56.540437" 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-10-15T02:49:56.540693" 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-10-15T02:49:56.540923" elapsed="0.000026"/>
</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-10-15T02:49:56.541153" elapsed="0.000026"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:56.541556" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:56.541334" elapsed="0.000295"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:56.541248" elapsed="0.000415"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:56.531714" elapsed="0.010073">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:49:58.549617" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:49:58.549736" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:49:58.550058" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:58.543233" elapsed="0.007533">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:58.551126" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:49:58.551604" elapsed="0.000049"/>
</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-10-15T02:49:58.552021" 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-10-15T02:49:58.552352" elapsed="0.000064"/>
</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-10-15T02:49:58.552745" 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-10-15T02:49:58.553078" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:49:58.553655" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:49:58.553343" elapsed="0.000427"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:49:58.553223" elapsed="0.000607"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:49:58.542558" elapsed="0.011465">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:00.562252" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:00.562481" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:00.562788" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:00.555751" elapsed="0.008059">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:00.564287" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:00.564764" elapsed="0.000050"/>
</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-10-15T02:50:00.565189" elapsed="0.000042"/>
</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-10-15T02:50:00.565569" elapsed="0.000042"/>
</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-10-15T02:50:00.565919" elapsed="0.000040"/>
</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-10-15T02:50:00.566248" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:00.566825" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:00.566554" elapsed="0.000387"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:00.566412" elapsed="0.000582"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:00.554833" elapsed="0.012347">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:02.575701" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:02.575846" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:02.576182" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:02.568888" elapsed="0.008275">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:02.577735" elapsed="0.000052"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:02.578181" elapsed="0.000053"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:02.579151" elapsed="0.000057"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:02.579580" elapsed="0.000060"/>
</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-10-15T02:50:02.580024" elapsed="0.000048"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:02.580381" elapsed="0.000109"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:02.581061" elapsed="0.000051"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:02.580749" elapsed="0.000439"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:02.580623" elapsed="0.000623"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:02.568054" elapsed="0.013461">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:04.588468" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:04.588557" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:04.588716" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:04.582758" elapsed="0.006582">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:04.589723" elapsed="0.000034"/>
</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-10-15T02:50:04.590024" 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-10-15T02:50:04.590311" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:04.590589" 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-10-15T02:50:04.590833" 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-10-15T02:50:04.591069" elapsed="0.000032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:04.591481" elapsed="0.000035"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:04.591259" elapsed="0.000307"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:04.591180" elapsed="0.000429"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:04.582099" elapsed="0.009653">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:06.601079" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:06.601248" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:06.601727" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:06.593530" elapsed="0.009308">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:06.603538" elapsed="0.000071"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:06.604086" 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-10-15T02:50:06.604579" 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-10-15T02:50:06.604947" elapsed="0.000057"/>
</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-10-15T02:50:06.605312" elapsed="0.000040"/>
</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-10-15T02:50:06.605698" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:06.606257" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:06.605975" elapsed="0.000396"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:06.605848" elapsed="0.000626"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:06.592600" elapsed="0.014092">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:08.615090" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:08.615215" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:08.615486" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:08.608390" elapsed="0.007939">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:08.616868" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:08.617284" elapsed="0.000050"/>
</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-10-15T02:50:08.617772" 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-10-15T02:50:08.618100" elapsed="0.000041"/>
</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-10-15T02:50:08.618497" 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-10-15T02:50:08.618832" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:08.619349" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:08.619083" elapsed="0.000425"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:08.618973" elapsed="0.000591"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:08.607572" elapsed="0.012175">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:10.629117" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:10.629239" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:10.629644" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:10.621931" elapsed="0.008618">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:10.631019" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:10.631480" elapsed="0.000053"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:10.631905" 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-10-15T02:50:10.632232" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:10.632619" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:10.632950" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:10.633516" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:10.633204" elapsed="0.000426"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:10.633092" elapsed="0.000592"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:10.621115" elapsed="0.012753">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:12.641812" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:12.641938" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:12.642158" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:12.635558" elapsed="0.007501">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:12.643610" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:12.644034" elapsed="0.000051"/>
</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-10-15T02:50:12.644506" 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-10-15T02:50:12.644843" elapsed="0.000042"/>
</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-10-15T02:50:12.645181" elapsed="0.000040"/>
</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-10-15T02:50:12.645556" elapsed="0.000053"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:12.646104" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:12.645833" elapsed="0.000383"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:12.645717" elapsed="0.000554"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:12.634707" elapsed="0.011802">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:14.654219" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:14.654341" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:14.654725" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:14.648068" elapsed="0.007573">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:14.656116" 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-10-15T02:50:14.656587" elapsed="0.000050"/>
</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-10-15T02:50:14.657009" elapsed="0.000042"/>
</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-10-15T02:50:14.657334" elapsed="0.000041"/>
</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-10-15T02:50:14.657728" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:14.658055" elapsed="0.000041"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:14.658635" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:14.658311" elapsed="0.000437"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:14.658199" elapsed="0.000606"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:14.647205" elapsed="0.011784">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:16.667339" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:16.667517" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:16.667746" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:16.660549" elapsed="0.008087">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:16.669098" 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-10-15T02:50:16.669548" elapsed="0.000049"/>
</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-10-15T02:50:16.669965" elapsed="0.000041"/>
</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-10-15T02:50:16.670286" elapsed="0.000039"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:16.670672" elapsed="0.000052"/>
</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-10-15T02:50:16.671010" elapsed="0.000039"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:16.671574" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:16.671261" elapsed="0.000425"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:16.671151" elapsed="0.000589"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:16.659732" elapsed="0.012190">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:18.677286" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:18.677350" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:18.677558" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:18.672966" elapsed="0.005033">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:18.678232" elapsed="0.000023"/>
</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-10-15T02:50:18.678462" 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-10-15T02:50:18.678674" 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-10-15T02:50:18.678842" 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-10-15T02:50:18.679004" 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-10-15T02:50:18.679159" elapsed="0.000018"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:18.679432" elapsed="0.000039"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:18.679286" elapsed="0.000219"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:18.679229" elapsed="0.000303"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:18.672500" elapsed="0.007123">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:20.687279" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:20.687400" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:20.687665" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:20.681123" elapsed="0.007435">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:20.689036" 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-10-15T02:50:20.689484" elapsed="0.000051"/>
</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-10-15T02:50:20.689922" elapsed="0.000042"/>
</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-10-15T02:50:20.690246" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:20.690631" elapsed="0.000040"/>
</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-10-15T02:50:20.690969" elapsed="0.000038"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:20.691526" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:20.691221" elapsed="0.000415"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:20.691110" elapsed="0.000579"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:20.680310" elapsed="0.011561">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:22.698640" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:22.698754" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:22.699047" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:22.693078" elapsed="0.006815">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:22.700336" 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-10-15T02:50:22.701178" elapsed="0.000051"/>
</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-10-15T02:50:22.701632" 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-10-15T02:50:22.701969" 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-10-15T02:50:22.702321" 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-10-15T02:50:22.702696" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:22.703195" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:22.702947" elapsed="0.000359"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:22.702842" elapsed="0.000513"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:22.692521" elapsed="0.011047">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:24.711858" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:24.711985" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:24.712204" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:24.705186" elapsed="0.007927">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:24.713667" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:24.714097" elapsed="0.000049"/>
</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-10-15T02:50:24.714568" 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-10-15T02:50:24.714907" elapsed="0.000042"/>
</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-10-15T02:50:24.715253" 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-10-15T02:50:24.715645" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:24.716177" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:24.715908" elapsed="0.000381"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:24.715793" elapsed="0.000552"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:24.704334" elapsed="0.012262">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:26.724832" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:26.724964" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:26.725296" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:26.718310" elapsed="0.007954">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:26.726834" elapsed="0.000052"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:26.727282" elapsed="0.000052"/>
</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-10-15T02:50:26.727806" 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-10-15T02:50:26.728168" elapsed="0.000053"/>
</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-10-15T02:50:26.728599" 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-10-15T02:50:26.728958" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:26.729575" elapsed="0.000049"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:26.729232" elapsed="0.000469"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:26.729111" elapsed="0.000650"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:26.717394" elapsed="0.012566">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:28.738094" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:28.738224" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:28.738512" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:28.731572" elapsed="0.007921">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:28.740021" elapsed="0.000050"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:28.740524" 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-10-15T02:50:28.740981" 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-10-15T02:50:28.741336" elapsed="0.000043"/>
</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-10-15T02:50:28.741758" 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-10-15T02:50:28.742113" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:28.743212" elapsed="0.000054"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:28.742400" elapsed="0.000945"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:28.742267" elapsed="0.001139"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:28.730756" elapsed="0.012904">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:30.751625" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:30.751762" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:30.752090" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:30.745249" elapsed="0.007780">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:30.753577" elapsed="0.000053"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:30.754024" elapsed="0.000051"/>
</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-10-15T02:50:30.754495" 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-10-15T02:50:30.754830" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:30.755170" elapsed="0.000040"/>
</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-10-15T02:50:30.755545" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:30.756073" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:30.755805" elapsed="0.000381"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:30.755692" elapsed="0.000548"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:30.744410" elapsed="0.012060">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:32.764314" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:32.764492" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:32.764734" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:32.758100" elapsed="0.007551">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:32.766144" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:32.766601" elapsed="0.000049"/>
</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-10-15T02:50:32.767018" elapsed="0.000041"/>
</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-10-15T02:50:32.767341" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:32.767748" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:32.768079" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:32.768643" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:32.768331" elapsed="0.000435"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:32.768221" elapsed="0.000600"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:32.757240" elapsed="0.011763">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:34.777761" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:34.777890" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:34.778269" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:34.770729" elapsed="0.008613">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:34.779955" 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-10-15T02:50:34.780574" 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-10-15T02:50:34.781117" 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-10-15T02:50:34.781518" 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-10-15T02:50:34.781912" 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-10-15T02:50:34.782280" elapsed="0.000055"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:34.783007" elapsed="0.000056"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:34.782671" elapsed="0.000488"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:34.782517" elapsed="0.000709"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:34.769825" elapsed="0.013596">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:36.796971" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:36.797149" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:36.797551" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:36.788860" elapsed="0.010031">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:36.799709" elapsed="0.000082"/>
</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-10-15T02:50:36.800364" elapsed="0.000129"/>
</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-10-15T02:50:36.801082" elapsed="0.000076"/>
</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-10-15T02:50:36.801673" elapsed="0.000073"/>
</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-10-15T02:50:36.802225" elapsed="0.000071"/>
</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-10-15T02:50:36.802810" elapsed="0.000069"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:36.803688" elapsed="0.000072"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:36.803214" elapsed="0.000645"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:36.803044" elapsed="0.000898"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:36.784345" elapsed="0.019874">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:38.812107" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:38.812233" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:38.812579" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:38.805841" elapsed="0.007586">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:38.813948" 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-10-15T02:50:38.814359" elapsed="0.000050"/>
</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-10-15T02:50:38.814847" 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-10-15T02:50:38.815177" elapsed="0.000041"/>
</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-10-15T02:50:38.815560" 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-10-15T02:50:38.815892" elapsed="0.000039"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:38.816409" elapsed="0.000085"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:38.816145" elapsed="0.000419"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:38.816035" elapsed="0.000583"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:38.805017" elapsed="0.011786">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:40.825295" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:40.825542" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:40.825870" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:40.818427" elapsed="0.008413">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:40.827321" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:40.827820" elapsed="0.000052"/>
</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-10-15T02:50:40.828387" elapsed="0.000127"/>
</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-10-15T02:50:40.828987" elapsed="0.000072"/>
</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-10-15T02:50:40.829424" elapsed="0.000103"/>
</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-10-15T02:50:40.829885" elapsed="0.000060"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:40.830616" elapsed="0.000050"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:40.830259" elapsed="0.000491"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:40.830099" elapsed="0.000719"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:40.817612" elapsed="0.013404">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:42.839801" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:42.839934" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:42.840281" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:42.832721" elapsed="0.009091">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:42.842333" elapsed="0.000052"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:42.842834" 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-10-15T02:50:42.843294" 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-10-15T02:50:42.843692" 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-10-15T02:50:42.844062" 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-10-15T02:50:42.844417" elapsed="0.000085"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:42.845017" elapsed="0.000047"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:42.844732" elapsed="0.000405"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:42.844614" elapsed="0.000581"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:42.831849" elapsed="0.013546">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:44.853770" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:44.853893" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:44.854112" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:44.847046" elapsed="0.007961">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:44.855535" elapsed="0.000050"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:44.855972" elapsed="0.000052"/>
</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-10-15T02:50:44.856399" elapsed="0.000041"/>
</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-10-15T02:50:44.856779" elapsed="0.000041"/>
</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-10-15T02:50:44.857118" elapsed="0.000040"/>
</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-10-15T02:50:44.857442" elapsed="0.000082"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:44.858016" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:44.857749" elapsed="0.000380"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:44.857631" elapsed="0.000552"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:44.846185" elapsed="0.012192">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:46.864931" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:46.865024" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:46.865284" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:46.859708" elapsed="0.006243">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:46.866308" elapsed="0.000039"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:46.866662" 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-10-15T02:50:46.866975" 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-10-15T02:50:46.867222" elapsed="0.000032"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:46.867497" 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-10-15T02:50:46.867745" elapsed="0.000032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:46.868148" elapsed="0.000036"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:46.867945" elapsed="0.000284"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:46.867856" elapsed="0.000406"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:46.859045" elapsed="0.009358">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:48.876845" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:48.876994" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:48.877222" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:48.870160" elapsed="0.007963">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:48.878646" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:48.879116" 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-10-15T02:50:48.879623" 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-10-15T02:50:48.879997" 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-10-15T02:50:48.880386" 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-10-15T02:50:48.880788" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:48.881878" elapsed="0.000050"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:48.881080" elapsed="0.000924"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:48.880966" elapsed="0.001097"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:48.869249" elapsed="0.013007">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:50:48.882432" level="FAIL">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:49:48.475223" elapsed="60.407450">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:48.883006" elapsed="0.000045"/>
</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-10-15T02:50:48.883436" elapsed="0.000093"/>
</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-10-15T02:50:48.883904" elapsed="0.000042"/>
</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-10-15T02:50:48.884222" elapsed="0.000040"/>
</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-10-15T02:50:48.884646" elapsed="0.000046"/>
</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-10-15T02:50:48.885099" elapsed="0.000043"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-10-15T02:49:48.463961" elapsed="60.421463">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s1-s2-t4" name="Link Up" line="69">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:50:48.891094" 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-10-15T02:50:48.887608" elapsed="0.003613"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:50:48.897158" 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-10-15T02:50:48.891591" elapsed="0.005693"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:50:48.898654" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:50:48.897641" elapsed="0.001089"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:48.907688" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:48.907806" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:48.908041" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:48.901217" elapsed="0.007739">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:48.909407" 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-10-15T02:50:48.909914" elapsed="0.000053"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:48.910338" elapsed="0.000040"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:48.910727" elapsed="0.000042"/>
</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-10-15T02:50:48.911128" 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-10-15T02:50:48.911517" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:48.912137" elapsed="0.000063"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:48.911782" elapsed="0.000515"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:48.911669" elapsed="0.000706"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:48.900415" elapsed="0.012274">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:50.920934" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:50.921067" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:50.921413" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:50.914342" elapsed="0.008059">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:50.922981" elapsed="0.000053"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:50.923492" 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-10-15T02:50:50.923958" 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-10-15T02:50:50.924308" elapsed="0.000043"/>
</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-10-15T02:50:50.924723" 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-10-15T02:50:50.925077" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:50.925721" elapsed="0.000048"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:50.925358" elapsed="0.000483"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:50.925231" elapsed="0.000669"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:50.913542" elapsed="0.012564">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:52.934685" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:52.934812" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:52.935046" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:52.927818" elapsed="0.008129">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:52.936415" elapsed="0.000104"/>
</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-10-15T02:50:52.936891" elapsed="0.000050"/>
</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-10-15T02:50:52.937311" elapsed="0.000041"/>
</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-10-15T02:50:52.937683" elapsed="0.000041"/>
</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-10-15T02:50:52.938025" elapsed="0.000040"/>
</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-10-15T02:50:52.938353" elapsed="0.000039"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:52.938923" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:52.938655" elapsed="0.000378"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:52.938541" elapsed="0.000546"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:52.926986" elapsed="0.012285">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:54.947192" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:54.947315" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:54.947714" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:54.940886" elapsed="0.007756">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:54.949131" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:54.949613" elapsed="0.000050"/>
</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-10-15T02:50:54.950034" elapsed="0.000040"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:54.950356" elapsed="0.000039"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:54.950758" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:54.951083" elapsed="0.000038"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:54.951671" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:54.951344" elapsed="0.000438"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:54.951226" elapsed="0.000610"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:54.940049" elapsed="0.011979">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:56.960116" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:56.960254" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:56.960546" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:56.953747" elapsed="0.007654">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:56.962021" elapsed="0.000052"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:56.962537" 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-10-15T02:50:56.962965" elapsed="0.000042"/>
</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-10-15T02:50:56.963290" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:56.963678" 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-10-15T02:50:56.964011" elapsed="0.000039"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:56.964582" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:56.964269" elapsed="0.000427"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:56.964154" elapsed="0.000596"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:56.952892" elapsed="0.012045">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:58.972810" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:58.972933" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:58.973252" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:58.966582" elapsed="0.007570">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:58.974686" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:50:58.975105" elapsed="0.000049"/>
</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-10-15T02:50:58.975571" 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-10-15T02:50:58.975907" elapsed="0.000041"/>
</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-10-15T02:50:58.976253" elapsed="0.000040"/>
</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-10-15T02:50:58.976638" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:58.977788" elapsed="0.000052"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:50:58.977410" elapsed="0.000506"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:50:58.976785" elapsed="0.001187"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:50:58.965764" elapsed="0.012401">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:50:58.978343" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:48.899183" elapsed="10.079438">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-10-15T02:50:48.886552" elapsed="10.092385">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:50:58.979962" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:50:58.979800" elapsed="0.000298"/>
</kw>
<doc>Test suite for RESTCONF Topology</doc>
<status status="FAIL" start="2026-10-15T02:49:28.222912" elapsed="90.757255"/>
</suite>
<suite id="s1-s1-s3" name="030 Restconf Statistics" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10/030_restconf_statistics.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-10-15T02:50:59.010085" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x777481056550&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-10-15T02:50:59.009335" elapsed="0.001097"/>
</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-10-15T02:50:59.022213" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:50:59.022326" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:50:59.022620" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:50:59.015749" elapsed="0.006931"/>
</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-10-15T02:50:59.023406" elapsed="0.000105"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:50:59.022857" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:50:59.024659" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:50:59.023987" elapsed="0.000869"/>
</kw>
<status status="PASS" start="2026-10-15T02:50:59.023634" elapsed="0.001295"/>
</branch>
<status status="PASS" start="2026-10-15T02:50:59.022813" elapsed="0.002162"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:50:59.025695" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:50:59.025268" elapsed="0.001118">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:50:59.026970" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:50:59.026689" elapsed="0.000397"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:50:59.026573" elapsed="0.000566"/>
</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-10-15T02:50:59.015232" elapsed="0.012090">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:01.039240" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:01.039361" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:01.039638" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:01.032863" elapsed="0.006829"/>
</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-10-15T02:51:01.040500" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:01.039872" elapsed="0.000751"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:01.041741" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:01.041027" elapsed="0.000835"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:01.040674" elapsed="0.001260"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:01.039830" elapsed="0.002149"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:01.042693" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:01.042264" elapsed="0.001148">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:01.044114" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:01.043822" elapsed="0.000406"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:01.043708" elapsed="0.000573"/>
</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-10-15T02:51:01.031935" elapsed="0.012580">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:03.056715" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:03.056838" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:03.057072" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:03.050741" elapsed="0.006387"/>
</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-10-15T02:51:03.058016" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:03.057399" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:03.059261" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:03.058599" elapsed="0.000780"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:03.058187" elapsed="0.001316"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:03.057355" elapsed="0.002200"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:03.060230" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:03.059852" elapsed="0.001150">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:03.061593" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:03.061251" elapsed="0.000460"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:03.061140" elapsed="0.000624"/>
</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-10-15T02:51:03.049826" elapsed="0.012119">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:05.074075" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:05.074194" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:05.074412" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:05.067676" elapsed="0.006841"/>
</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-10-15T02:51:05.075284" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:05.074707" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:05.076597" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:05.075868" elapsed="0.000846"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:05.075503" elapsed="0.001282"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:05.074663" elapsed="0.002167"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:05.077580" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:05.077140" elapsed="0.001186">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:05.078931" elapsed="0.000042"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:05.078635" elapsed="0.000408"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:05.078512" elapsed="0.000583"/>
</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-10-15T02:51:05.066712" elapsed="0.012569">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:07.091322" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:07.091616" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:07.091851" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:07.085059" elapsed="0.006848"/>
</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-10-15T02:51:07.092738" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:07.092100" elapsed="0.000758"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:07.094027" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:07.093283" elapsed="0.000861"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:07.092913" elapsed="0.001304"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:07.092056" elapsed="0.002205"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:07.095006" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:07.094611" elapsed="0.001205">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:07.096388" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:07.096077" elapsed="0.000495"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:07.095958" elapsed="0.000670"/>
</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-10-15T02:51:07.084083" elapsed="0.012737">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:09.106843" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:09.106926" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:09.107087" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:09.101314" elapsed="0.005810"/>
</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-10-15T02:51:09.107678" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:09.107253" elapsed="0.000505"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:09.108537" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:09.108032" elapsed="0.000626"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:09.107795" elapsed="0.000916"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:09.107223" elapsed="0.001519"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:09.109206" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:09.108944" elapsed="0.000808">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:09.110129" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:09.109925" elapsed="0.000352"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:09.109845" elapsed="0.000474"/>
</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-10-15T02:51:09.100691" elapsed="0.009778">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:51:09.110616" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:50:59.011691" elapsed="10.099054">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the stats for all nodes</doc>
<status status="FAIL" start="2026-10-15T02:50:59.010626" elapsed="10.100331">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:09.119015" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:09.119087" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:09.119216" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:09.115237" elapsed="0.004550">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:09.120038" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:09.120270" elapsed="0.000026"/>
</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-10-15T02:51:09.114811" elapsed="0.005603">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:11.130027" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:11.130148" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:11.130356" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:11.123912" elapsed="0.007337">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:11.131716" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:11.132069" elapsed="0.000041"/>
</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-10-15T02:51:11.123104" elapsed="0.009192">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:13.143295" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:13.143416" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:13.143718" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:13.136980" elapsed="0.007731">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:13.145163" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:13.145615" elapsed="0.000046"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-10-15T02:51:13.136001" elapsed="0.009853">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:15.156271" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:15.156402" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:15.156697" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:15.149681" elapsed="0.008053">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:15.158185" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:15.158629" 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-10-15T02:51:15.148818" elapsed="0.010059">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:17.168894" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:17.169014" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:17.169231" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:17.162341" elapsed="0.007783">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:17.170678" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:17.171032" elapsed="0.000041"/>
</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-10-15T02:51:17.161597" elapsed="0.009667">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:19.181742" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:19.181858" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:19.182065" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:19.174651" elapsed="0.008316">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:19.183363" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:19.183768" elapsed="0.000041"/>
</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-10-15T02:51:19.173869" elapsed="0.010124">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:51:19.184164" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:09.112345" elapsed="10.072006">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-10-15T02:51:09.111631" elapsed="10.073067">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:19.196350" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:19.196519" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:19.196734" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:19.190418" elapsed="0.007134">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:19.197926" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:19.198270" elapsed="0.000040"/>
</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-10-15T02:51:19.189776" elapsed="0.008931">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:21.208711" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:21.208831" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:21.209044" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:21.202391" elapsed="0.007624">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:21.210423" elapsed="0.000114"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:21.210856" elapsed="0.000042"/>
</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-10-15T02:51:21.201573" elapsed="0.009519">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:23.221676" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:23.221814" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:23.222057" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:23.215081" elapsed="0.007952">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:23.223579" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:23.223962" elapsed="0.000043"/>
</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-10-15T02:51:23.214166" elapsed="0.010043">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:25.234411" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:25.234624" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:25.234944" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:25.227899" elapsed="0.008032">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:25.236363" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:25.236798" 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-10-15T02:51:25.227062" elapsed="0.009982">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:27.248656" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:27.248740" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:27.248896" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:27.242836" elapsed="0.006784">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:27.249915" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:27.250174" elapsed="0.000040"/>
</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-10-15T02:51:27.241693" elapsed="0.008688">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:29.260373" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:29.260569" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:29.260804" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:29.253849" elapsed="0.007924">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:29.262207" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:29.262652" elapsed="0.000047"/>
</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-10-15T02:51:29.253005" elapsed="0.009895">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:51:29.263087" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:19.186077" elapsed="10.077209">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-10-15T02:51:19.185082" elapsed="10.078678">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:29.277256" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:29.277438" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:29.277825" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:29.269730" elapsed="0.009405">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:29.279828" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:29.280366" elapsed="0.000069"/>
</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-10-15T02:51:29.268920" elapsed="0.011884">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:31.287205" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:31.287275" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:31.287392" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:31.282710" elapsed="0.005296">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:31.288487" elapsed="0.000078"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:31.288871" elapsed="0.000040"/>
</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-10-15T02:51:31.282276" elapsed="0.006828">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:33.296666" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:33.296728" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:33.296910" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:33.292009" elapsed="0.005334">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:33.297595" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:33.297769" elapsed="0.000019"/>
</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-10-15T02:51:33.291437" elapsed="0.006445">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:35.308029" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:35.308160" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:35.308388" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:35.301509" elapsed="0.007860">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:35.309882" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:35.310258" elapsed="0.000043"/>
</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-10-15T02:51:35.300674" elapsed="0.009882">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:37.321670" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:37.321833" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:37.322067" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:37.314380" elapsed="0.008691">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:37.323523" elapsed="0.000107"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:37.323983" elapsed="0.000044"/>
</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-10-15T02:51:37.313557" elapsed="0.010699">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:39.335250" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:39.335487" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:39.335838" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:39.328120" elapsed="0.008699">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:39.337219" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:39.337616" elapsed="0.000042"/>
</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-10-15T02:51:39.327138" elapsed="0.010706">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:51:39.338014" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:29.265116" elapsed="10.073083">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-10-15T02:51:29.264174" elapsed="10.074351">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:51:39.339953" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:51:39.339755" elapsed="0.000336"/>
</kw>
<doc>Test suite for RESTCONF statistics</doc>
<status status="FAIL" start="2026-10-15T02:50:58.983627" elapsed="40.356534"/>
</suite>
<suite id="s1-s1-s4" name="040 Restconf Frm" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10/040_restconf_frm.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-10-15T02:51:39.373509" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77748077aa10&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-10-15T02:51:39.372797" elapsed="0.001197"/>
</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-10-15T02:51:39.383255" level="INFO">PUT Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Content-Length': '506', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=&lt;flow xmlns="urn:opendaylight:flow:inventory"&gt;&lt;priority&gt;2&lt;/priority&gt;&lt;flow-name&gt;Foo&lt;/flow-name&gt;&lt;match&gt;&lt;ethernet-match&gt;&lt;ethernet-type&gt;&lt;type&gt;2048&lt;/type&gt;&lt;/ethernet-type&gt;&lt;/ethernet-match&gt;&lt;ipv4-destination&gt;10.0.20.1/32&lt;/ipv4-destination&gt;&lt;/match&gt;&lt;id&gt;152&lt;/id&gt;&lt;table_id&gt;0&lt;/table_id&gt;&lt;instructions&gt;&lt;instruction&gt;&lt;order&gt;0&lt;/order&gt;&lt;apply-actions&gt;&lt;action&gt;&lt;order&gt;0&lt;/order&gt;&lt;output-action&gt;&lt;output-node-connector&gt;openflow:1:1&lt;/output-node-connector&gt;&lt;/output-action&gt;&lt;/action&gt;&lt;/apply-actions&gt;&lt;/instruction&gt;&lt;/instructions&gt;&lt;/flow&gt; 
 </msg>
<msg time="2026-10-15T02:51:39.383437" level="INFO">PUT Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 
 status=404, reason=Not Found 
 headers={'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:39.384015" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</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-10-15T02:51:39.374927" elapsed="0.010870">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</status>
</kw>
<doc>Push a flow through REST-API</doc>
<status status="FAIL" start="2026-10-15T02:51:39.374156" elapsed="0.012005">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</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-10-15T02:51:39.393284" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:39.393561" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:39.393786" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config Expected status: 404 != 200</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-10-15T02:51:39.388032" elapsed="0.006625">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>152</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:39.395080" elapsed="0.000050"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:51:39.386937" elapsed="0.008470">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config Expected status: 404 != 200</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-10-15T02:51:39.397899" level="INFO">${elements} = ['10.0.20.1']</msg>
<var>${elements}</var>
<arg>10.0.20.1</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:51:39.397176" elapsed="0.000781"/>
</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-10-15T02:51:39.407731" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:39.407869" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:39.408085" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:39.402398" elapsed="0.005743"/>
</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-10-15T02:51:39.409074" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:39.408334" elapsed="0.000896"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:39.410387" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:39.409751" elapsed="0.000849"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:39.409308" elapsed="0.001378"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:39.408275" elapsed="0.002459"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:39.411400" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:39.411028" elapsed="0.001151">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:39.412928" elapsed="0.000065"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:39.412502" elapsed="0.000592"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:39.412320" elapsed="0.000849"/>
</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-10-15T02:51:39.401498" elapsed="0.011922">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:41.423816" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:41.424033" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:41.424258" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:41.417309" elapsed="0.007003"/>
</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-10-15T02:51:41.425128" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:41.424526" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:41.426571" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:41.425827" elapsed="0.000871"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:41.425301" elapsed="0.001476"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:41.424482" elapsed="0.002362"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:41.428107" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:41.427153" elapsed="0.001753">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:41.429482" elapsed="0.000070"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:41.429160" elapsed="0.000470"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:41.429043" elapsed="0.000643"/>
</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-10-15T02:51:41.416282" elapsed="0.013619">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:43.440325" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:43.440484" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:43.440735" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:43.433883" elapsed="0.006905"/>
</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-10-15T02:51:43.441590" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:43.440969" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:43.442852" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:43.442115" elapsed="0.000855"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:43.441763" elapsed="0.001279"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:43.440925" elapsed="0.002162"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:43.443948" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:43.443376" elapsed="0.001595">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:43.445583" elapsed="0.000050"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:43.445234" elapsed="0.000476"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:43.445116" elapsed="0.000651"/>
</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-10-15T02:51:43.432725" elapsed="0.013260">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:45.453505" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:45.453606" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:45.453758" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:45.448670" elapsed="0.005126"/>
</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-10-15T02:51:45.454349" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:45.453919" elapsed="0.000510"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:45.455223" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:45.454738" elapsed="0.000591"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:45.454489" elapsed="0.000906"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:45.453891" elapsed="0.001540"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:45.455933" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:45.455674" elapsed="0.000810">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:45.456973" elapsed="0.000036"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:45.456715" elapsed="0.000356"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:45.456620" elapsed="0.000499"/>
</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-10-15T02:51:45.447928" elapsed="0.009357">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:47.468755" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:47.468883" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:47.469271" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:47.461919" elapsed="0.007414"/>
</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-10-15T02:51:47.470224" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:47.469590" elapsed="0.000786"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:47.471649" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:47.470893" elapsed="0.000878"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:47.470435" elapsed="0.001410"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:47.469513" elapsed="0.002380"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:47.472690" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:47.472193" elapsed="0.001313">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:47.474117" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:47.473826" elapsed="0.000411"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:47.473706" elapsed="0.000587"/>
</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-10-15T02:51:47.460809" elapsed="0.013725">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:49.484961" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:49.485080" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:49.485298" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:49.478642" elapsed="0.006709"/>
</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-10-15T02:51:49.486139" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:49.485585" elapsed="0.000666"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:49.487382" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:49.486719" elapsed="0.000809"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:49.486305" elapsed="0.001312"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:49.485521" elapsed="0.002142"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:49.488327" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:49.487950" elapsed="0.001156">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:49.489699" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:49.489358" elapsed="0.000453"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:49.489240" elapsed="0.000624"/>
</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-10-15T02:51:49.477490" elapsed="0.012657">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:51:49.490331" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:39.398329" elapsed="10.092238">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:51:39.396128" elapsed="10.094767">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:49.497274" level="INFO">DELETE Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:49.497369" level="INFO">DELETE Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 
 status=404, reason=Not Found 
 headers={'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:49.497590" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 Expected status: 404 != 204</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-10-15T02:51:49.492129" elapsed="0.006247">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 Expected status: 404 != 204</status>
</kw>
<doc>Remove a flow</doc>
<status status="FAIL" start="2026-10-15T02:51:49.491283" elapsed="0.007452">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 Expected status: 404 != 204</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-10-15T02:51:49.505620" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:49.505731" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:49.505920" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config Expected status: 404 != 200</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-10-15T02:51:49.499946" elapsed="0.006788">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config Expected status: 404 != 200</status>
</kw>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>152</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:49.507116" elapsed="0.000045"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:51:49.499097" elapsed="0.008311">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config Expected status: 404 != 200</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-10-15T02:51:49.510165" level="INFO">${elements} = ['10.0.20.1']</msg>
<var>${elements}</var>
<arg>10.0.20.1</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:51:49.509538" elapsed="0.000680"/>
</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-10-15T02:51:49.521834" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:49.521942" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:49.522245" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:49.516833" elapsed="0.005466"/>
</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-10-15T02:51:49.523066" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:49.522501" elapsed="0.000677"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:49.524245" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:49.523626" elapsed="0.000731"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:49.523232" elapsed="0.001193"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:49.522427" elapsed="0.002087"/>
</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-10-15T02:51:49.524969" elapsed="0.000039"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:51:49.524887" elapsed="0.000176"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:51:49.524858" elapsed="0.000249"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:51:49.524660" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:49.524625" elapsed="0.000566"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:49.525889" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:49.525503" elapsed="0.001127">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:49.527154" elapsed="0.000042"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:49.526879" elapsed="0.000384"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:49.526765" elapsed="0.000552"/>
</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-10-15T02:51:49.515811" elapsed="0.011715">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:51.540262" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:51.540385" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:51.540689" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:51.533806" elapsed="0.006943"/>
</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-10-15T02:51:51.541596" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:51.540939" elapsed="0.000782"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:51.542906" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:51.542160" elapsed="0.000878"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:51.541776" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:51.540887" elapsed="0.002289"/>
</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-10-15T02:51:51.543680" elapsed="0.000031"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:51:51.543602" elapsed="0.000163"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:51:51.543566" elapsed="0.000246"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:51:51.543300" elapsed="0.000557"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:51.543266" elapsed="0.000767"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:51.544836" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:51.544366" elapsed="0.001323">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:51.546263" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:51.545944" elapsed="0.000441"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:51.545830" elapsed="0.000612"/>
</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-10-15T02:51:51.532698" elapsed="0.014002">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:53.561226" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:53.561359" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:53.561690" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:53.553956" elapsed="0.007796"/>
</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-10-15T02:51:53.562646" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:53.561954" elapsed="0.000821"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:53.564003" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:53.563220" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:53.562832" elapsed="0.001370"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:53.561906" elapsed="0.002344"/>
</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-10-15T02:51:53.564760" elapsed="0.000032"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:51:53.564680" elapsed="0.000167"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:51:53.564645" elapsed="0.000249"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:51:53.564374" elapsed="0.000567"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:53.564339" elapsed="0.000649"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:53.565758" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:53.565296" elapsed="0.001294">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:53.567184" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:53.566867" elapsed="0.000437"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:53.566740" elapsed="0.000621"/>
</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-10-15T02:51:53.552798" elapsed="0.014817">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:55.580250" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:55.580505" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:55.580774" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:55.573724" elapsed="0.007106"/>
</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-10-15T02:51:55.581739" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:55.581020" elapsed="0.000845"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:55.583021" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:55.582282" elapsed="0.000857"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:55.581918" elapsed="0.001292"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:55.580975" elapsed="0.002279"/>
</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-10-15T02:51:55.583726" elapsed="0.000033"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:51:55.583652" elapsed="0.000160"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:51:55.583621" elapsed="0.000234"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:51:55.583370" elapsed="0.000529"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:55.583338" elapsed="0.000602"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:55.584685" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:55.584224" elapsed="0.001195">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:55.586031" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:55.585738" elapsed="0.000407"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:55.585611" elapsed="0.000588"/>
</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-10-15T02:51:55.572632" elapsed="0.013762">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:57.597939" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:57.598051" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:57.598264" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:57.592166" elapsed="0.006149"/>
</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-10-15T02:51:57.599089" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:57.598523" elapsed="0.000676"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:57.600273" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:57.599621" elapsed="0.000895"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:57.599248" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:57.598478" elapsed="0.002175"/>
</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-10-15T02:51:57.601397" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:51:57.601332" elapsed="0.000161"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:51:57.600928" elapsed="0.000597"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:51:57.600770" elapsed="0.000801"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:57.600737" elapsed="0.000866"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:57.602065" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:57.601796" elapsed="0.000809">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:57.602995" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:57.602791" elapsed="0.000291"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:57.602694" elapsed="0.000435"/>
</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-10-15T02:51:57.591198" elapsed="0.012085">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:59.619649" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:51:59.619782" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:51:59.620020" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:51:59.610372" elapsed="0.009703"/>
</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-10-15T02:51:59.621151" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:59.620305" elapsed="0.001006"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:59.622723" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:51:59.621882" elapsed="0.000961"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:59.621371" elapsed="0.001545"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:59.620256" elapsed="0.002705"/>
</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-10-15T02:51:59.623413" elapsed="0.000029"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:51:59.623340" elapsed="0.000190"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:51:59.623309" elapsed="0.000288"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:51:59.623076" elapsed="0.000568"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:59.623044" elapsed="0.000641"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:51:59.624445" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:51:59.624023" elapsed="0.001222">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:59.625883" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:51:59.625549" elapsed="0.000453"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:51:59.625383" elapsed="0.000673"/>
</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-10-15T02:51:59.609226" elapsed="0.017044">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:51:59.626619" level="FAIL">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</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-10-15T02:51:49.510641" elapsed="10.116173">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:51:49.508047" elapsed="10.119150">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:51:59.628607" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:51:59.628381" elapsed="0.000368"/>
</kw>
<doc>Test suite for RESTCONF FRM</doc>
<status status="FAIL" start="2026-10-15T02:51:39.341720" elapsed="20.287098"/>
</suite>
<kw name="Stop Mininet" owner="Utils" type="TEARDOWN">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:59.632861" 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-10-15T02:51:59.632237" elapsed="0.000722"/>
</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-10-15T02:51:59.633300" elapsed="0.000319"/>
</kw>
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-10-15T02:51:59.633916" elapsed="0.000253"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:51:59.640063" 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-10-15T02:51:59.634443" elapsed="0.005744"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:51:59.908157" 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 223.154 seconds
[?2004h[jenkins@releng-38703-72-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-10-15T02:51:59.640554" elapsed="0.267745"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:51:59.908593" elapsed="0.000225"/>
</kw>
<doc>Cleanup/Shutdown work that should be done at the completion of all
tests</doc>
<status status="PASS" start="2026-10-15T02:51:59.631444" elapsed="0.277442"/>
</kw>
<doc>Test suite for MD-SAL NSF</doc>
<status status="FAIL" start="2026-10-15T02:48:13.636747" elapsed="226.272171"/>
</suite>
<suite id="s1-s2" name="MD SAL NSF OF13" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13">
<kw name="Start Mininet" owner="Utils" type="SETUP">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:59.922122" 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-10-15T02:51:59.921887" 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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:51:59.924022" elapsed="0.000137"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:51:59.923797" elapsed="0.000398"/>
</branch>
<status status="PASS" start="2026-10-15T02:51:59.923776" elapsed="0.000444"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:51:59.924577" 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-10-15T02:51:59.924677" 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-10-15T02:51:59.924388" elapsed="0.000314"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:51:59.925156" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.55" 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-10-15T02:51:59.924868" elapsed="0.000332"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:51:59.925690" 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-10-15T02:51:59.925352" elapsed="0.000363"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:51:59.926402" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:51:59.926487" 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-10-15T02:51:59.926146" elapsed="0.000364"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:51:59.926649" elapsed="0.000290"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:51:59.927665" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:52:00.530620" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:52:00 UTC 2026

  System load:  0.0                Processes:             109
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:48:16 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:51:59.927407" elapsed="0.603455"/>
</kw>
<msg time="2026-10-15T02:52:00.530947" 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-10-15T02:51:59.927074" elapsed="0.603948"/>
</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-10-15T02:51:59.925879" elapsed="0.605248"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:52:00.531632" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-10-15T02:52:01.721021" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:52:01.721503" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:52:01.721637" 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-10-15T02:52:00.531370" elapsed="1.190337"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:52:01.722135" elapsed="0.000763"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:01.724043" 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-10-15T02:52:01.723350" elapsed="0.000829"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:52:01.724702" elapsed="0.000039"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:52:01.724365" elapsed="0.000443"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:01.724314" 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-10-15T02:52:01.725175" elapsed="0.000079"/>
</return>
<status status="PASS" start="2026-10-15T02:52:01.724968" elapsed="0.000359"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:01.724935" elapsed="0.000442"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:52:01.725480" 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">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:52:01.726998" elapsed="0.000822"/>
</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-10-15T02:52:01.728250" elapsed="0.000481"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:52:01.728999" elapsed="0.000242"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:52:01.726153" elapsed="0.003204"/>
</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-10-15T02:51:59.923394" elapsed="1.806160"/>
</kw>
<msg time="2026-10-15T02:52:01.729732" 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-10-15T02:51:59.922888" elapsed="1.806962"/>
</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-10-15T02:51:59.922532" elapsed="1.807477"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:01.735427" elapsed="0.000116"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:01.734741" elapsed="0.000943"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:01.734681" elapsed="0.001080"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:52:01.736792" 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-10-15T02:52:01.737094" 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-10-15T02:52:01.736311" elapsed="0.000862"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:01.738752" 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.55" 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-10-15T02:52:01.737786" elapsed="0.001235"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:52:01.740529" 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-10-15T02:52:01.739593" elapsed="0.001043"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:52:01.742398" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:52:01.742620" 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-10-15T02:52:01.741782" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:52:01.743007" elapsed="0.000973"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:52:01.746423" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:52:02.144403" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:52:00 UTC 2026

  System load:  0.0                Processes:             109
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:52:00 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:52:01.745663" elapsed="0.398922"/>
</kw>
<msg time="2026-10-15T02:52:02.144667" 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-10-15T02:52:01.744420" elapsed="0.400321"/>
</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-10-15T02:52:01.741058" elapsed="0.403790"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:52:02.145319" 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-10-15T02:52:02.188311" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-10-15T02:52:02.188606" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:52:02.188700" 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-10-15T02:52:02.145094" elapsed="0.043656"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:52:02.189050" elapsed="0.000477"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:02.190551" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:02.189951" elapsed="0.000711"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:52:02.191064" elapsed="0.000034"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:52:02.190825" elapsed="0.000335"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:02.190775" elapsed="0.000432"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:52:02.191528" elapsed="0.000080"/>
</return>
<status status="PASS" start="2026-10-15T02:52:02.191313" elapsed="0.000365"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:02.191283" elapsed="0.000444"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:52:02.191796" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:52:02.193161" elapsed="0.000690"/>
</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-10-15T02:52:02.194212" elapsed="0.000375"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:52:02.194843" elapsed="0.000195"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:52:02.192386" elapsed="0.002761"/>
</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-10-15T02:52:01.733420" elapsed="0.461883"/>
</kw>
<msg time="2026-10-15T02:52:02.195406" 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-10-15T02:52:01.731248" elapsed="0.464290"/>
</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-10-15T02:52:01.730364" elapsed="0.465356"/>
</kw>
<status status="PASS" start="2026-10-15T02:51:59.922303" elapsed="2.273622"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:52:02.197015" 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-10-15T02:52:02.196293" elapsed="0.000777"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:52:02.198140" level="INFO">${mininet_conn_id} = 10</msg>
<arg>${mininet_conn_id}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:52:02.197479" elapsed="0.000749"/>
</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-10-15T02:52:02.201912" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:52:02.202073" 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-10-15T02:52:02.201316" elapsed="0.000806"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:52:02.202393" elapsed="0.000823"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:52:02.204911" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:52:02.629062" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:52:00 UTC 2026

  System load:  0.0                Processes:             109
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:52:02 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:52:02.204350" elapsed="0.424792"/>
</kw>
<msg time="2026-10-15T02:52:02.629199" 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-10-15T02:52:02.203549" elapsed="0.425701"/>
</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-10-15T02:52:02.200545" elapsed="0.428780"/>
</kw>
<msg time="2026-10-15T02:52:02.629370" 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-10-15T02:52:02.199767" elapsed="0.429643"/>
</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-10-15T02:52:02.198622" elapsed="0.430869"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:52:02.629784" level="INFO">Executing command 'sudo ovs-vsctl set-manager ptcp:6644'.</msg>
<msg time="2026-10-15T02:52:02.652804" 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-10-15T02:52:02.629687" elapsed="0.023203"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:52:02.692618" level="INFO">sudo mn --controller=remote,ip=10.30.171.74 --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-10-15T02:52:02.653098" elapsed="0.039576"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:52:02.978872" level="INFO">[?2004l*** Creating network
*** Adding controller
Connecting to remote controller at 10.30.171.74: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-10-15T02:52:02.692815" elapsed="0.286194"/>
</kw>
<doc>Basic setup/cleanup work that can be done safely before any system
is run.</doc>
<status status="PASS" start="2026-10-15T02:51:59.921470" elapsed="3.057639"/>
</kw>
<suite id="s1-s2-s1" name="010 Restconf Inventory" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/010_restconf_inventory.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-10-15T02:52:02.991782" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7774807c9550&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-10-15T02:52:02.991497" elapsed="0.000449"/>
</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-10-15T02:52:03.001844" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:03.001897" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:03.002127" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:02.996512" elapsed="0.005641"/>
</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-10-15T02:52:03.002527" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:03.002235" elapsed="0.000359"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:03.003116" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:03.002825" elapsed="0.000343"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:03.002619" elapsed="0.000580"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:03.002214" elapsed="0.001006"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:03.003547" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:03.003349" elapsed="0.000558">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:03.004160" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:03.004032" elapsed="0.000179"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:03.003974" elapsed="0.000262"/>
</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-10-15T02:52:02.996138" elapsed="0.008185">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:05.016060" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:05.016182" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:05.016399" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:05.010107" elapsed="0.006379"/>
</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-10-15T02:52:05.017258" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:05.016694" elapsed="0.000680"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:05.018598" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:05.017885" elapsed="0.000834"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:05.017427" elapsed="0.001364"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:05.016650" elapsed="0.002185"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:05.019535" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:05.019122" elapsed="0.001161">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:05.020886" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:05.020589" elapsed="0.000410"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:05.020418" elapsed="0.000636"/>
</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-10-15T02:52:05.009139" elapsed="0.012097">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:07.030548" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:07.030740" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:07.030912" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:07.025615" elapsed="0.005337"/>
</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-10-15T02:52:07.031545" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:07.031096" elapsed="0.000549"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:07.032435" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:07.031941" elapsed="0.000601"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:07.031684" elapsed="0.000932"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:07.031061" elapsed="0.001592"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:07.033143" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:07.032863" elapsed="0.000853">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:07.034114" elapsed="0.000035"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:07.033899" elapsed="0.000300"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:07.033813" elapsed="0.000428"/>
</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-10-15T02:52:07.024907" elapsed="0.009477">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:09.046485" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:09.046637" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:09.046879" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:09.040687" elapsed="0.006245"/>
</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-10-15T02:52:09.047743" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:09.047113" elapsed="0.000748"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:09.048993" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:09.048272" elapsed="0.000836"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:09.047914" elapsed="0.001266"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:09.047071" elapsed="0.002154"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:09.049936" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:09.049541" elapsed="0.001178">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:09.051262" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:09.050976" elapsed="0.000509"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:09.050864" elapsed="0.000682"/>
</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-10-15T02:52:09.039771" elapsed="0.011983">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:11.064380" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:11.064546" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:11.064813" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:11.058030" elapsed="0.006841"/>
</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-10-15T02:52:11.065716" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:11.065059" elapsed="0.000781"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:11.067032" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:11.066277" elapsed="0.000880"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:11.065896" elapsed="0.001336"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:11.065015" elapsed="0.002266"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:11.068043" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:11.067638" elapsed="0.001238">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:11.069481" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:11.069141" elapsed="0.000481"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:11.069021" elapsed="0.000659"/>
</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-10-15T02:52:11.057030" elapsed="0.012847">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:13.081965" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:13.082082" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:13.082298" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:13.075659" elapsed="0.006694"/>
</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-10-15T02:52:13.083157" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:13.082573" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:13.084407" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:13.083739" elapsed="0.000937"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:13.083326" elapsed="0.001425"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:13.082529" elapsed="0.002269"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:13.085546" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:13.085127" elapsed="0.001160">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:13.087042" elapsed="0.000058"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:13.086629" elapsed="0.000551"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:13.086422" elapsed="0.000816"/>
</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-10-15T02:52:13.074727" elapsed="0.012712">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:52:13.087747" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:52:02.992437" elapsed="10.095506">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the inventory</doc>
<status status="FAIL" start="2026-10-15T02:52:02.992014" elapsed="10.096245">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:52:13.104242" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:13.104361" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:13.104662" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:13.099140" elapsed="0.005582"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:13.105871" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:13.105146" elapsed="0.000842"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:13.106733" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:13.106298" elapsed="0.001180">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:13.107859" 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-10-15T02:52:13.098336" elapsed="0.009761">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:15.121849" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:15.121971" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:15.122291" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:15.115682" elapsed="0.006664"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:15.123617" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:15.122849" elapsed="0.000890"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:15.124434" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:15.124052" elapsed="0.001156">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:15.125620" elapsed="0.000047"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-10-15T02:52:15.114743" elapsed="0.011125">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:17.135769" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:17.135847" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:17.135987" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:17.130819" elapsed="0.005203"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:17.136812" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:17.136306" elapsed="0.000578"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:17.137323" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:17.137079" elapsed="0.000761">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:17.138063" elapsed="0.000028"/>
</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-10-15T02:52:17.130166" elapsed="0.008048">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:19.152938" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:19.153057" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:19.153290" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:19.146401" elapsed="0.006945"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:19.154680" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:19.153939" elapsed="0.000859"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:19.155514" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:19.155107" elapsed="0.001151">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:19.156669" elapsed="0.000047"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-10-15T02:52:19.145518" elapsed="0.011394">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:21.167570" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:21.167679" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:21.167831" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:21.162362" elapsed="0.005498"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:21.168710" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:21.168169" elapsed="0.000600"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:21.169112" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:21.168920" elapsed="0.000579">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:21.169686" elapsed="0.000021"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-10-15T02:52:21.161669" elapsed="0.008132">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:23.183282" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:23.183401" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:23.183665" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:23.177171" elapsed="0.006542"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:23.184978" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:23.184230" elapsed="0.000848"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:23.185746" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:23.185320" elapsed="0.001177">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if the `container` does not contain the `item` `count` times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:23.186809" elapsed="0.000033"/>
</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-10-15T02:52:23.176236" elapsed="0.010746">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:52:23.187124" level="FAIL">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:52:13.091128" elapsed="10.096180">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:52:13.089252" elapsed="10.098411">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s2-s1-t3" name="Get node 1 inventory" line="49">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:52:23.189976" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:52:23.189157" elapsed="0.000883"/>
</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-10-15T02:52:23.199288" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:23.199364" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:23.199533" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:23.195437" elapsed="0.004137"/>
</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-10-15T02:52:23.200106" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:23.199726" elapsed="0.000448"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:23.200728" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:23.200368" elapsed="0.000418"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:23.200200" elapsed="0.000630"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:23.199691" elapsed="0.001173"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:23.201315" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:23.201061" elapsed="0.000784">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:23.202281" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:23.202078" elapsed="0.000284"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:23.201936" elapsed="0.000465"/>
</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-10-15T02:52:23.195008" elapsed="0.007542">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:25.215222" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:25.215338" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:25.215580" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:25.208412" elapsed="0.007249"/>
</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-10-15T02:52:25.216401" elapsed="0.000093"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:25.215843" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:25.217697" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:25.216992" elapsed="0.000820"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:25.216633" elapsed="0.001249"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:25.215799" elapsed="0.002128"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:25.218633" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:25.218210" elapsed="0.001146">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:25.219946" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:25.219655" elapsed="0.000403"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:25.219518" elapsed="0.000593"/>
</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-10-15T02:52:25.207363" elapsed="0.012931">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:27.233232" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:27.233356" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:27.233644" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:27.226313" elapsed="0.007390"/>
</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-10-15T02:52:27.234497" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:27.233889" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:27.235773" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:27.235052" elapsed="0.000945"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:27.234695" elapsed="0.001375"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:27.233842" elapsed="0.002273"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:27.236856" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:27.236405" elapsed="0.001723">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:27.238730" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:27.238384" elapsed="0.000467"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:27.238267" elapsed="0.000638"/>
</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-10-15T02:52:27.225218" elapsed="0.013874">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:29.252644" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:29.252777" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:29.253019" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:29.245783" elapsed="0.007294"/>
</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-10-15T02:52:29.253962" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:29.253279" elapsed="0.000811"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:29.255312" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:29.254566" elapsed="0.000868"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:29.254149" elapsed="0.001395"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:29.253232" elapsed="0.002362"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:29.256342" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:29.255929" elapsed="0.001247">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:29.257790" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:29.257431" elapsed="0.000475"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:29.257312" elapsed="0.000649"/>
</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-10-15T02:52:29.244589" elapsed="0.013559">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:31.271636" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:31.271753" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:31.272065" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:31.264594" elapsed="0.007526"/>
</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-10-15T02:52:31.272916" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:31.272297" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:31.274147" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:31.273436" elapsed="0.000825"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:31.273085" elapsed="0.001246"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:31.272255" elapsed="0.002120"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:31.275093" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:31.274712" elapsed="0.001155">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:31.276409" elapsed="0.000071"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:31.276118" elapsed="0.000436"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:31.276002" elapsed="0.000604"/>
</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-10-15T02:52:31.263418" elapsed="0.013398">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:33.289865" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:33.289985" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:33.290235" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:33.283187" elapsed="0.007104"/>
</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-10-15T02:52:33.291135" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:33.290512" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:33.292401" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:33.291721" elapsed="0.000827"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:33.291305" elapsed="0.001336"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:33.290433" elapsed="0.002254"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:33.293353" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:33.292975" elapsed="0.001153">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:33.294717" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:33.294379" elapsed="0.000452"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:33.294263" elapsed="0.000620"/>
</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-10-15T02:52:33.282100" elapsed="0.012967">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:52:33.295346" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:52:23.190421" elapsed="10.105144">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-10-15T02:52:23.188190" elapsed="10.107700">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s2-s1-t4" name="Get node 2 inventory" line="60">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:52:33.298571" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:52:33.297567" elapsed="0.001110"/>
</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-10-15T02:52:33.311291" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:33.311399" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:33.311664" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:33.305171" elapsed="0.006547"/>
</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-10-15T02:52:33.312409" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:33.311880" elapsed="0.000678"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:33.313635" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:33.312986" elapsed="0.000765"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:33.312610" elapsed="0.001212"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:33.311842" elapsed="0.002025"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:33.314537" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:33.314153" elapsed="0.001090">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:33.315815" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:33.315516" elapsed="0.000412"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:33.315373" elapsed="0.000607"/>
</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-10-15T02:52:33.304181" elapsed="0.011974">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:35.328995" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:35.329111" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:35.329443" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:35.322544" elapsed="0.006986"/>
</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-10-15T02:52:35.330325" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:35.329739" elapsed="0.000703"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:35.331602" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:35.330916" elapsed="0.000820"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:35.330529" elapsed="0.001279"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:35.329695" elapsed="0.002157"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:35.332542" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:35.332137" elapsed="0.001153">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:35.333878" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:35.333571" elapsed="0.000421"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:35.333425" elapsed="0.000619"/>
</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-10-15T02:52:35.321435" elapsed="0.012798">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:37.347154" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:37.347273" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:37.347538" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:37.340156" elapsed="0.007441"/>
</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-10-15T02:52:37.348378" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:37.347804" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:37.349667" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:37.348951" elapsed="0.000835"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:37.348578" elapsed="0.001281"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:37.347761" elapsed="0.002143"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:37.350607" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:37.350189" elapsed="0.001182">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:37.351960" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:37.351670" elapsed="0.000402"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:37.351535" elapsed="0.000588"/>
</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-10-15T02:52:37.339080" elapsed="0.013228">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:39.365867" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:39.365994" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:39.366225" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:39.358915" elapsed="0.007368"/>
</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-10-15T02:52:39.367133" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:39.366506" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:39.368501" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:39.367768" elapsed="0.000878"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:39.367315" elapsed="0.001410"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:39.366427" elapsed="0.002347"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:39.369531" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:39.369082" elapsed="0.001247">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:39.370958" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:39.370648" elapsed="0.000435"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:39.370504" elapsed="0.000636"/>
</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-10-15T02:52:39.357782" elapsed="0.013549">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:41.389247" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:41.389513" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:41.389904" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:41.380661" elapsed="0.009330"/>
</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-10-15T02:52:41.391129" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:41.390256" elapsed="0.001047"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:41.393005" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:41.391983" elapsed="0.001197"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:41.391388" elapsed="0.001900"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:41.390191" elapsed="0.003167"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:41.394514" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:41.393971" elapsed="0.001255">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:41.395777" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:41.395486" elapsed="0.000399"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:41.395352" elapsed="0.000584"/>
</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-10-15T02:52:41.379024" elapsed="0.017090">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:43.410553" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:43.410777" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:43.411089" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:43.402563" elapsed="0.008604"/>
</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-10-15T02:52:43.412330" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:43.411428" elapsed="0.001111"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:43.414384" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:43.413330" elapsed="0.001275"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:43.412785" elapsed="0.001943"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:43.411364" elapsed="0.003431"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:43.415887" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:43.415203" elapsed="0.001791">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:43.417852" elapsed="0.000068"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:43.417355" elapsed="0.000665"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:43.417189" elapsed="0.000911"/>
</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-10-15T02:52:43.401324" elapsed="0.017055">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:52:43.418725" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:52:33.299093" elapsed="10.119900">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-10-15T02:52:33.296643" elapsed="10.122751">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s2-s1-t5" name="Get node 3 inventory" line="71">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:52:43.422610" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:52:43.421216" elapsed="0.001480"/>
</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-10-15T02:52:43.435180" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:43.435292" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:43.435541" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:43.430054" elapsed="0.005543"/>
</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-10-15T02:52:43.436320" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:43.435785" elapsed="0.000651"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:43.437555" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:43.436890" elapsed="0.000807"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:43.436521" elapsed="0.001249"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:43.435744" elapsed="0.002070"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:43.438498" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:43.438101" elapsed="0.001111">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:43.439806" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:43.439500" elapsed="0.000424"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:43.439351" elapsed="0.000627"/>
</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-10-15T02:52:43.429066" elapsed="0.011096">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:45.453435" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:45.453607" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:45.453869" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:45.446607" elapsed="0.007318"/>
</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-10-15T02:52:45.454824" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:45.454118" elapsed="0.000833"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:45.456196" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:45.455405" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:45.455009" elapsed="0.001511"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:45.454073" elapsed="0.002499"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:45.457312" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:45.456905" elapsed="0.001231">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:45.458773" elapsed="0.000049"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:45.458409" elapsed="0.000490"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:45.458285" elapsed="0.000671"/>
</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-10-15T02:52:45.445438" elapsed="0.013714">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:47.472991" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:47.473127" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:47.473369" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:47.465619" elapsed="0.007808"/>
</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-10-15T02:52:47.474275" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:47.473693" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:47.475572" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:47.474878" elapsed="0.000830"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:47.474441" elapsed="0.001337"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:47.473616" elapsed="0.002205"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:47.476627" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:47.476212" elapsed="0.001679">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:47.478437" elapsed="0.000074"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:47.478147" elapsed="0.000435"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:47.478029" elapsed="0.000629"/>
</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-10-15T02:52:47.464484" elapsed="0.014401">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:49.492816" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:49.492939" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:49.493255" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:49.484870" elapsed="0.008442"/>
</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-10-15T02:52:49.494114" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:49.493533" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:49.495357" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:49.494698" elapsed="0.000816"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:49.494283" elapsed="0.001306"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:49.493489" elapsed="0.002145"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:49.496333" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:49.495950" elapsed="0.001160">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:49.497704" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:49.497361" elapsed="0.000464"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:49.497247" elapsed="0.000631"/>
</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-10-15T02:52:49.483803" elapsed="0.014261">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:51.513232" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:51.513368" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:51.513676" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:51.505324" elapsed="0.008412"/>
</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-10-15T02:52:51.514600" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:51.513933" elapsed="0.000811"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:51.515955" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:51.515178" elapsed="0.000893"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:51.514799" elapsed="0.001343"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:51.513888" elapsed="0.002299"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:51.516917" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:51.516507" elapsed="0.001203">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:51.518261" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:51.517971" elapsed="0.000406"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:51.517852" elapsed="0.000576"/>
</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-10-15T02:52:51.504141" elapsed="0.014523">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:53.532299" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:53.532421" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:53.532732" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:53.525293" elapsed="0.007494"/>
</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-10-15T02:52:53.533559" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:53.532969" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:53.534814" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:53.534101" elapsed="0.000829"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:53.533754" elapsed="0.001247"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:53.532926" elapsed="0.002119"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:53.535772" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:53.535330" elapsed="0.001210">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:53.537115" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:53.536819" elapsed="0.000409"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:53.536699" elapsed="0.000580"/>
</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-10-15T02:52:53.524204" elapsed="0.013293">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:52:53.537711" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:52:43.423313" elapsed="10.114587">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-10-15T02:52:43.420160" elapsed="10.118050">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s2-s1-t6" name="Link Down" line="82">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:52:53.544303" 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-10-15T02:52:53.539771" elapsed="0.004647"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:52:53.550147" 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-10-15T02:52:53.544796" elapsed="0.005466"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:52:53.551243" level="INFO">@{list} = [ "link-down":true ]</msg>
<var>@{list}</var>
<arg>"link-down":true</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:52:53.550598" elapsed="0.000700"/>
</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-10-15T02:52:53.562989" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:53.563102" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:53.563408" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:53.557723" elapsed="0.005771"/>
</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-10-15T02:52:53.564232" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:53.563688" elapsed="0.000658"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:53.565423" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:53.564810" elapsed="0.000765"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:53.564396" elapsed="0.001276"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:53.563623" elapsed="0.002098"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:53.566443" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:53.566035" elapsed="0.001153">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:53.567768" elapsed="0.000056"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:53.567440" elapsed="0.000455"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:53.567325" elapsed="0.000623"/>
</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-10-15T02:52:53.556769" elapsed="0.011360">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:55.584643" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:55.584796" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:55.585032" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:55.577084" elapsed="0.008004"/>
</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-10-15T02:52:55.585894" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:55.585265" elapsed="0.000745"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:55.587133" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:55.586414" elapsed="0.000834"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:55.586063" elapsed="0.001257"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:55.585222" elapsed="0.002144"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:55.588084" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:55.587706" elapsed="0.001155">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:55.589406" elapsed="0.000083"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:55.589118" elapsed="0.000444"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:55.589001" elapsed="0.000614"/>
</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-10-15T02:52:55.576011" elapsed="0.013812">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:57.603303" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:57.603487" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:57.603768" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:57.596114" elapsed="0.007731"/>
</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-10-15T02:52:57.604869" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:57.604062" elapsed="0.000936"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:57.606195" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:57.605415" elapsed="0.000906"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:57.605056" elapsed="0.001347"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:57.604008" elapsed="0.002512"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:57.607334" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:57.606930" elapsed="0.001250">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:57.609002" elapsed="0.000055"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:57.608442" elapsed="0.000692"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:57.608323" elapsed="0.000868"/>
</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-10-15T02:52:57.594978" elapsed="0.014403">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:59.622929" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:52:59.623053" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:52:59.623287" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:52:59.615530" elapsed="0.007814"/>
</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-10-15T02:52:59.624223" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:52:59.623577" elapsed="0.000771"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:52:59.625576" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:52:59.624843" elapsed="0.001012"/>
</kw>
<status status="PASS" start="2026-10-15T02:52:59.624403" elapsed="0.001551"/>
</branch>
<status status="PASS" start="2026-10-15T02:52:59.623529" elapsed="0.002475"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:52:59.626776" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:52:59.626310" elapsed="0.001300">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:52:59.628229" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:52:59.627907" elapsed="0.000447"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:52:59.627785" elapsed="0.000625"/>
</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-10-15T02:52:59.614416" elapsed="0.014275">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:01.677800" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:01.677879" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:01.678029" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:01.671203" elapsed="0.006861"/>
</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-10-15T02:53:01.678818" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:01.678183" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:01.680061" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:01.679347" elapsed="0.000831"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:01.678990" elapsed="0.001261"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:01.678152" elapsed="0.002144"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:01.681019" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:01.680619" elapsed="0.001184">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:01.682348" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:01.682059" elapsed="0.000436"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:01.681943" elapsed="0.000608"/>
</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-10-15T02:53:01.670107" elapsed="0.012651">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:03.696127" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:03.696253" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:03.696712" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:03.688971" elapsed="0.007824"/>
</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-10-15T02:53:03.697583" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:03.696980" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:03.698864" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:03.698141" elapsed="0.000845"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:03.697783" elapsed="0.001297"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:03.696938" elapsed="0.002193"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:03.699918" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:03.699428" elapsed="0.001392">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:03.701433" elapsed="0.000084"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:03.701129" elapsed="0.000464"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:03.701007" elapsed="0.000639"/>
</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-10-15T02:53:03.687845" elapsed="0.014016">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:53:03.702091" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:52:53.551738" elapsed="10.150554">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:03.702802" elapsed="0.000055"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-10-15T02:52:53.538912" elapsed="10.164244">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s2-s1-t7" name="Link Up" line="100">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:53:03.708265" 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-10-15T02:53:03.704789" elapsed="0.003598"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:53:03.712390" 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-10-15T02:53:03.708793" elapsed="0.003746"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:53:03.713613" level="INFO">@{list} = [ "link-down":false ]</msg>
<var>@{list}</var>
<arg>"link-down":false</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:53:03.712905" elapsed="0.000818"/>
</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-10-15T02:53:03.726761" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:03.726879" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:03.727092" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:03.720347" elapsed="0.006801"/>
</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-10-15T02:53:03.728091" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:03.727397" elapsed="0.000820"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:03.729411" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:03.728723" elapsed="0.000874"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:03.728278" elapsed="0.001415"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:03.727355" elapsed="0.002386"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:03.730401" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:03.730031" elapsed="0.001111">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:03.731722" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:03.731392" elapsed="0.000447"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:03.731278" elapsed="0.000612"/>
</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-10-15T02:53:03.719319" elapsed="0.012782">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:05.745059" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:05.745184" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:05.745404" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:05.738077" elapsed="0.007416"/>
</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-10-15T02:53:05.746279" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:05.745714" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:05.747550" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:05.746852" elapsed="0.000835"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:05.746477" elapsed="0.001283"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:05.745639" elapsed="0.002165"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:05.748511" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:05.748091" elapsed="0.001179">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:05.749874" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:05.749559" elapsed="0.000430"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:05.749410" elapsed="0.000632"/>
</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-10-15T02:53:05.736981" elapsed="0.013245">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:07.766542" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:07.766896" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:07.767226" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:07.758174" elapsed="0.009128"/>
</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-10-15T02:53:07.768375" elapsed="0.000112"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:07.767579" elapsed="0.001000"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:07.770156" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:07.769201" elapsed="0.001119"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:07.768654" elapsed="0.001762"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:07.767515" elapsed="0.003004"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:07.771543" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:07.770967" elapsed="0.001658">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:07.773542" elapsed="0.000069"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:07.773085" elapsed="0.000651"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:07.772930" elapsed="0.000884"/>
</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-10-15T02:53:07.756726" elapsed="0.017345">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:09.786744" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:09.786864" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:09.787080" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:09.779971" elapsed="0.007163"/>
</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-10-15T02:53:09.787934" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:09.787313" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:09.789171" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:09.788488" elapsed="0.000896"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:09.788103" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:09.787271" elapsed="0.002268"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:09.790241" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:09.789859" elapsed="0.001165">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:09.791609" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:09.791277" elapsed="0.000472"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:09.791162" elapsed="0.000640"/>
</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-10-15T02:53:09.778911" elapsed="0.013077">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:11.808287" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:11.808497" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:11.808840" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:11.799876" elapsed="0.009039"/>
</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-10-15T02:53:11.809823" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:11.809113" elapsed="0.000834"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:11.811205" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:11.810354" elapsed="0.000971"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:11.810000" elapsed="0.001400"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:11.809068" elapsed="0.002377"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:11.812266" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:11.811818" elapsed="0.001920">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:11.814317" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:11.814017" elapsed="0.000422"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:11.813895" elapsed="0.000646"/>
</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-10-15T02:53:11.798335" elapsed="0.016419">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:13.827275" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:13.827488" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '452'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:13.827860" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:13.820717" elapsed="0.007199"/>
</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-10-15T02:53:13.828773" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:13.828108" elapsed="0.000786"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:13.830045" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:13.829311" elapsed="0.000853"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:13.828947" elapsed="0.001290"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:13.828063" elapsed="0.002220"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:13.831018" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:13.830610" elapsed="0.001187">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:13.832341" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:13.832052" elapsed="0.000438"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:13.831937" elapsed="0.000608"/>
</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-10-15T02:53:13.819619" elapsed="0.013132">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:53:13.832968" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:03.714101" elapsed="10.119057">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:13.833598" elapsed="0.000046"/>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-10-15T02:53:03.703884" elapsed="10.130067">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:53:13.835232" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:53:13.835065" elapsed="0.000299"/>
</kw>
<doc>Test suite for RESTCONF inventory</doc>
<status status="FAIL" start="2026-10-15T02:52:02.979191" elapsed="70.856241"/>
</suite>
<suite id="s1-s2-s2" name="020 Restconf Topology" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/020_restconf_topology.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-10-15T02:53:13.863364" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/json'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77748070e8d0&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-10-15T02:53:13.862795" elapsed="0.000932"/>
</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-10-15T02:53:13.874795" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:13.874866" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:13.874998" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:13.868626" elapsed="0.006462"/>
</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-10-15T02:53:13.875571" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:13.875200" elapsed="0.000445"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:13.876311" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:13.875923" elapsed="0.000459"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:13.875677" elapsed="0.000749"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:13.875172" elapsed="0.001303"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:13.877073" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:13.876701" elapsed="0.001153">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:13.878396" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:13.878113" elapsed="0.000435"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:13.877996" elapsed="0.000605"/>
</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-10-15T02:53:13.868121" elapsed="0.010719">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:15.891404" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:15.891565" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:15.891820" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:15.884443" elapsed="0.007433"/>
</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-10-15T02:53:15.892655" elapsed="0.000080"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:15.892055" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:15.893933" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:15.893215" elapsed="0.000834"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:15.892856" elapsed="0.001267"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:15.892015" elapsed="0.002153"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:15.894891" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:15.894486" elapsed="0.001167">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:15.896223" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:15.895929" elapsed="0.000409"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:15.895813" elapsed="0.000578"/>
</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-10-15T02:53:15.883545" elapsed="0.013059">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:17.910432" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:17.910731" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:17.910958" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:17.902145" elapsed="0.008869"/>
</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-10-15T02:53:17.911823" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:17.911197" elapsed="0.000744"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:17.913161" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:17.912401" elapsed="0.000875"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:17.911994" elapsed="0.001354"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:17.911155" elapsed="0.002238"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:17.914655" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:17.913770" elapsed="0.001732">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:17.916083" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:17.915788" elapsed="0.000413"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:17.915649" elapsed="0.000606"/>
</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-10-15T02:53:17.901227" elapsed="0.015212">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:19.928571" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:19.928720" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:19.928947" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:19.922245" elapsed="0.006757"/>
</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-10-15T02:53:19.929804" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:19.929178" elapsed="0.000745"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:19.931038" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:19.930332" elapsed="0.000822"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:19.929978" elapsed="0.001248"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:19.929137" elapsed="0.002134"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:19.932025" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:19.931619" elapsed="0.001184">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:19.933344" elapsed="0.000043"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:19.933055" elapsed="0.000533"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:19.932941" elapsed="0.000706"/>
</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-10-15T02:53:19.921311" elapsed="0.012549">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:21.946989" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:21.947108" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:21.947323" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:21.939807" elapsed="0.007576"/>
</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-10-15T02:53:21.948229" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:21.947605" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:21.949496" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:21.948804" elapsed="0.000812"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:21.948397" elapsed="0.001292"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:21.947562" elapsed="0.002199"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:21.950430" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:21.950052" elapsed="0.001151">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:21.951813" elapsed="0.000062"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:21.951489" elapsed="0.000479"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:21.951343" elapsed="0.000680"/>
</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-10-15T02:53:21.938833" elapsed="0.013376">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:23.966210" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:23.966336" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:23.966634" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:53:23.958869" elapsed="0.007825"/>
</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-10-15T02:53:23.967658" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:53:23.966923" elapsed="0.000891"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.969106" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:53:23.968309" elapsed="0.001037"/>
</kw>
<status status="PASS" start="2026-10-15T02:53:23.967871" elapsed="0.001554"/>
</branch>
<status status="PASS" start="2026-10-15T02:53:23.966877" elapsed="0.002629"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:23.970219" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:53:23.969826" elapsed="0.001339">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:23.971777" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:53:23.971427" elapsed="0.000466"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:53:23.971309" elapsed="0.000636"/>
</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-10-15T02:53:23.957868" elapsed="0.014268">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:53:23.972318" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:13.864811" elapsed="10.107722">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:23.972882" elapsed="0.000044"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:23.973305" elapsed="0.000041"/>
</kw>
<doc>Get RESTCONF Topology and validate the result.</doc>
<status status="FAIL" start="2026-10-15T02:53:13.863887" elapsed="10.109754">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s2-s2-t2" name="List all the links" line="31">
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.977421" 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-10-15T02:53:23.976675" elapsed="0.000837"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.978586" 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-10-15T02:53:23.977907" elapsed="0.000735"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.979872" 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-10-15T02:53:23.979018" elapsed="0.000913"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.981041" 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 the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:53:23.980307" elapsed="0.000824"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.982169" 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-10-15T02:53:23.981510" elapsed="0.000714"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.983251" 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-10-15T02:53:23.982604" elapsed="0.000702"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.984500" 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-10-15T02:53:23.983684" elapsed="0.000874"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.985610" 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 the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:53:23.984956" elapsed="0.000766"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.986751" 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-10-15T02:53:23.986064" elapsed="0.000742"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.987844" 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-10-15T02:53:23.987157" elapsed="0.000744"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.989079" 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-10-15T02:53:23.988250" elapsed="0.000964"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.990263" 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 the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:53:23.989625" elapsed="0.000726"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.991384" 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-10-15T02:53:23.990749" elapsed="0.000690"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.992496" 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-10-15T02:53:23.991843" elapsed="0.000709"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.993741" 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-10-15T02:53:23.992926" elapsed="0.000873"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.994842" 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 the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:53:23.994175" elapsed="0.000757"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:53:23.995976" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:53:23.995215" elapsed="0.000821"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:24.003920" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:24.004032" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:24.004233" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:23.998132" elapsed="0.006964">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:24.005572" 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-10-15T02:53:24.006008" elapsed="0.000050"/>
</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-10-15T02:53:24.006432" elapsed="0.000072"/>
</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-10-15T02:53:24.006820" elapsed="0.000043"/>
</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-10-15T02:53:24.007165" 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-10-15T02:53:24.007527" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:24.008079" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:24.007805" elapsed="0.000388"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:24.007675" elapsed="0.000571"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:23.997488" elapsed="0.010938">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:26.016859" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:26.017070" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:26.017303" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:26.010541" elapsed="0.007672">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:26.018740" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:26.019165" elapsed="0.000050"/>
</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-10-15T02:53:26.019624" 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-10-15T02:53:26.019982" elapsed="0.000041"/>
</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-10-15T02:53:26.020328" elapsed="0.000040"/>
</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-10-15T02:53:26.020687" elapsed="0.000061"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:26.021234" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:26.020967" elapsed="0.000376"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:26.020854" elapsed="0.000545"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:26.009201" elapsed="0.012415">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:28.029623" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:28.029765" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:28.029981" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:28.023190" elapsed="0.007730">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:28.031392" 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-10-15T02:53:28.031912" elapsed="0.000050"/>
</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-10-15T02:53:28.032340" elapsed="0.000041"/>
</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-10-15T02:53:28.032700" elapsed="0.000062"/>
</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-10-15T02:53:28.033068" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:28.033402" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:28.033982" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:28.033692" elapsed="0.000401"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:28.033575" elapsed="0.000571"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:28.022332" elapsed="0.011999">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:30.042947" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:30.043071" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:30.043284" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:30.036074" elapsed="0.008105">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:30.044689" 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-10-15T02:53:30.045131" elapsed="0.000049"/>
</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-10-15T02:53:30.045594" 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-10-15T02:53:30.045947" elapsed="0.000041"/>
</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-10-15T02:53:30.046290" elapsed="0.000040"/>
</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-10-15T02:53:30.046659" elapsed="0.000047"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:30.047538" elapsed="0.000063"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:30.047059" elapsed="0.000614"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:30.046880" elapsed="0.000869"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:30.035232" elapsed="0.012725">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:32.057228" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:32.057354" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:32.057643" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:32.049857" elapsed="0.008798">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:32.059192" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:32.059647" elapsed="0.000052"/>
</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-10-15T02:53:32.060102" elapsed="0.000041"/>
</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-10-15T02:53:32.060430" elapsed="0.000070"/>
</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-10-15T02:53:32.060828" 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-10-15T02:53:32.061159" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:32.061830" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:32.061540" elapsed="0.000402"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:32.061392" elapsed="0.000604"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:32.048991" elapsed="0.013191">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:34.070057" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:34.070179" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:34.070394" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:34.063793" elapsed="0.007500">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:34.071832" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:34.072253" elapsed="0.000051"/>
</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-10-15T02:53:34.072710" elapsed="0.000066"/>
</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-10-15T02:53:34.073070" elapsed="0.000041"/>
</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-10-15T02:53:34.073417" elapsed="0.000070"/>
</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-10-15T02:53:34.073806" elapsed="0.000041"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:34.074339" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:34.074067" elapsed="0.000410"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:34.073953" elapsed="0.000583"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:34.062955" elapsed="0.011786">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:53:34.074919" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:23.996405" elapsed="10.078705">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>List all the links in the topology.</doc>
<status status="FAIL" start="2026-10-15T02:53:23.974718" elapsed="10.100694">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s2-s2-t3" name="Link Down" line="52">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:53:34.081784" 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-10-15T02:53:34.077114" elapsed="0.004792"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:53:34.084356" 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-10-15T02:53:34.082234" elapsed="0.002284"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:53:34.085576" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:53:34.084840" elapsed="0.000795"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:34.093617" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:34.093842" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:34.094047" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:34.087744" elapsed="0.007162">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:34.095347" 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-10-15T02:53:34.095819" elapsed="0.000050"/>
</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-10-15T02:53:34.096245" elapsed="0.000041"/>
</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-10-15T02:53:34.096607" elapsed="0.000042"/>
</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-10-15T02:53:34.096975" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:34.097311" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:34.097888" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:34.097596" elapsed="0.000404"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:34.097481" elapsed="0.000573"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:34.087077" elapsed="0.011157">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:36.107900" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:36.108024" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:36.108277" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:36.100886" elapsed="0.008327">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:36.109740" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:36.110152" elapsed="0.000050"/>
</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-10-15T02:53:36.110605" elapsed="0.000042"/>
</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-10-15T02:53:36.110953" elapsed="0.000041"/>
</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-10-15T02:53:36.111293" elapsed="0.000040"/>
</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-10-15T02:53:36.111652" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:36.112195" elapsed="0.000042"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:36.111931" elapsed="0.000373"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:36.111816" elapsed="0.000542"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:36.099500" elapsed="0.013069">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:38.121493" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:38.121636" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:38.121892" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:38.114680" elapsed="0.008201">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:38.123352" 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-10-15T02:53:38.123819" elapsed="0.000050"/>
</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-10-15T02:53:38.124242" elapsed="0.000040"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:38.124598" elapsed="0.000041"/>
</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-10-15T02:53:38.124964" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:38.125290" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:38.125885" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:38.125593" elapsed="0.000405"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:38.125432" elapsed="0.000618"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:38.113843" elapsed="0.012390">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:40.135176" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:40.135317" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:40.135612" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:40.128162" elapsed="0.008517">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:40.137253" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:40.137759" 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-10-15T02:53:40.138191" elapsed="0.000041"/>
</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-10-15T02:53:40.138554" elapsed="0.000042"/>
</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-10-15T02:53:40.140155" elapsed="0.000223"/>
</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-10-15T02:53:40.140929" elapsed="0.000047"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:40.141958" elapsed="0.000053"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:40.141609" elapsed="0.000482"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:40.141338" elapsed="0.000813"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:40.127156" elapsed="0.015385">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:42.152031" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:42.152157" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:42.152424" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:42.145027" elapsed="0.008347">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:42.153919" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:42.154341" elapsed="0.000050"/>
</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-10-15T02:53:42.154808" 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-10-15T02:53:42.155150" elapsed="0.000039"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:42.155513" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:42.155869" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:42.156410" elapsed="0.000067"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:42.156146" elapsed="0.000399"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:42.156032" elapsed="0.000567"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:42.143967" elapsed="0.012840">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:44.165146" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:44.165274" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:44.165547" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:44.158373" elapsed="0.008154">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:44.167100" elapsed="0.000054"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:44.167650" 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-10-15T02:53:44.168153" 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-10-15T02:53:44.168852" elapsed="0.000072"/>
</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-10-15T02:53:44.169408" elapsed="0.000108"/>
</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-10-15T02:53:44.170012" elapsed="0.000065"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:44.170813" elapsed="0.000052"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:44.170404" elapsed="0.000563"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:44.170239" elapsed="0.000791"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:44.157577" elapsed="0.013664">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:46.179990" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:46.180113" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:46.180330" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:46.172963" elapsed="0.008278">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:46.181792" elapsed="0.000050"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:46.182214" elapsed="0.000051"/>
</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-10-15T02:53:46.182683" elapsed="0.000042"/>
</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-10-15T02:53:46.183040" elapsed="0.000171"/>
</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-10-15T02:53:46.183539" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:46.183888" elapsed="0.000039"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:46.184417" elapsed="0.000070"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:46.184150" elapsed="0.000405"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:46.184033" elapsed="0.000577"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:46.172035" elapsed="0.012789">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:48.194336" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:48.194498" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:48.194725" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:48.186946" elapsed="0.008978">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:48.196806" elapsed="0.000072"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:48.200693" elapsed="0.000082"/>
</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-10-15T02:53:48.201177" 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-10-15T02:53:48.201620" elapsed="0.000055"/>
</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-10-15T02:53:48.202031" 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-10-15T02:53:48.202374" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:48.203006" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:48.202700" elapsed="0.000420"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:48.202579" elapsed="0.000595"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:48.185830" elapsed="0.017537">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:50.212268" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:50.212407" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:50.212685" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:50.205089" elapsed="0.008597">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:50.214269" 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-10-15T02:53:50.214819" 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-10-15T02:53:50.215280" elapsed="0.000042"/>
</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-10-15T02:53:50.215656" elapsed="0.000043"/>
</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-10-15T02:53:50.216042" 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-10-15T02:53:50.216389" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:50.217013" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:50.216699" elapsed="0.000431"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:50.216572" elapsed="0.000615"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:50.204198" elapsed="0.013293">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:52.225550" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:52.225681" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:52.226052" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:52.219139" elapsed="0.007845">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:52.227507" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:52.227956" elapsed="0.000051"/>
</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-10-15T02:53:52.228375" elapsed="0.000041"/>
</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-10-15T02:53:52.228730" elapsed="0.000063"/>
</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-10-15T02:53:52.229101" 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-10-15T02:53:52.229444" elapsed="0.000069"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:52.230032" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:52.229742" elapsed="0.000401"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:52.229623" elapsed="0.000574"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:52.218288" elapsed="0.012108">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:54.238608" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:54.238779" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:54.239019" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:54.232044" elapsed="0.007899">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:54.240484" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:54.240955" elapsed="0.000052"/>
</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-10-15T02:53:54.241380" elapsed="0.000042"/>
</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-10-15T02:53:54.241739" elapsed="0.000062"/>
</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-10-15T02:53:54.242100" elapsed="0.000040"/>
</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-10-15T02:53:54.242427" elapsed="0.000066"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:54.243005" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:54.242715" elapsed="0.000401"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:54.242600" elapsed="0.000572"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:54.231208" elapsed="0.012150">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:56.252917" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:56.253077" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:56.253429" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:56.246257" elapsed="0.008142">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:56.255017" 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-10-15T02:53:56.255617" elapsed="0.000073"/>
</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-10-15T02:53:56.256280" elapsed="0.000071"/>
</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-10-15T02:53:56.256859" 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-10-15T02:53:56.257293" elapsed="0.000060"/>
</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-10-15T02:53:56.257868" elapsed="0.000063"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:56.258654" elapsed="0.000055"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:56.258241" elapsed="0.000576"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:56.258081" elapsed="0.000816"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:56.245137" elapsed="0.014047">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:53:58.267530" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:53:58.267668" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:53:58.267920" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:58.261027" elapsed="0.007812">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:58.269334" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:53:58.269820" elapsed="0.000051"/>
</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-10-15T02:53:58.270244" elapsed="0.000041"/>
</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-10-15T02:53:58.270593" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:58.270947" elapsed="0.000039"/>
</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-10-15T02:53:58.271268" elapsed="0.000039"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:53:58.271838" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:53:58.271553" elapsed="0.000395"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:53:58.271411" elapsed="0.000591"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:53:58.260183" elapsed="0.012011">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:00.280008" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:00.280130" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:00.280478" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:00.273926" elapsed="0.007417">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:00.281922" elapsed="0.000053"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:00.282352" elapsed="0.000053"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:00.282872" 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-10-15T02:54:00.283207" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:00.283579" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:00.283927" elapsed="0.000041"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:00.284482" elapsed="0.000047"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:00.284184" elapsed="0.000413"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:00.284073" elapsed="0.000578"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:00.273067" elapsed="0.011791">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:02.294135" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:02.294287" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:02.294586" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:02.286569" elapsed="0.009003">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:02.296153" 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-10-15T02:54:02.296686" 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-10-15T02:54:02.297352" 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-10-15T02:54:02.297745" elapsed="0.000064"/>
</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-10-15T02:54:02.298154" 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-10-15T02:54:02.298540" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:02.299145" elapsed="0.000048"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:02.298851" elapsed="0.000418"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:02.298700" elapsed="0.000629"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:02.285657" elapsed="0.013924">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:04.307869" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:04.308000" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:04.308332" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:04.301241" elapsed="0.008054">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:04.309861" elapsed="0.000052"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:04.310309" elapsed="0.000053"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:04.310817" 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-10-15T02:54:04.311173" 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-10-15T02:54:04.311571" 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-10-15T02:54:04.311948" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:04.312537" elapsed="0.000049"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:04.312223" elapsed="0.000437"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:04.312104" elapsed="0.000614"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:04.300358" elapsed="0.012581">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:06.321093" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:06.321217" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:06.321436" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:06.314515" elapsed="0.007807">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:06.322861" elapsed="0.000050"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:06.323294" elapsed="0.000048"/>
</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-10-15T02:54:06.323744" elapsed="0.000059"/>
</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-10-15T02:54:06.324090" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:06.324537" elapsed="0.000048"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:06.324909" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:06.325429" elapsed="0.000070"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:06.325165" elapsed="0.000403"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:06.325054" elapsed="0.000568"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:06.313716" elapsed="0.012112">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:08.334160" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:08.334320" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:08.334713" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:08.327393" elapsed="0.008235">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:08.336195" 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-10-15T02:54:08.336748" elapsed="0.000099"/>
</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-10-15T02:54:08.337326" elapsed="0.000051"/>
</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-10-15T02:54:08.337735" elapsed="0.000063"/>
</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-10-15T02:54:08.338113" 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-10-15T02:54:08.338483" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:08.339549" elapsed="0.000047"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:08.339241" elapsed="0.000430"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:08.338638" elapsed="0.001090"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:08.326599" elapsed="0.013340">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:10.347679" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:10.347842" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:10.348123" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:10.341557" elapsed="0.007535">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:10.349638" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:10.350105" elapsed="0.000050"/>
</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-10-15T02:54:10.350604" elapsed="0.000051"/>
</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-10-15T02:54:10.350997" elapsed="0.000055"/>
</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-10-15T02:54:10.351361" elapsed="0.000040"/>
</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-10-15T02:54:10.351737" elapsed="0.000075"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:10.352346" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:10.352071" elapsed="0.000418"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:10.351933" elapsed="0.000612"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:10.340727" elapsed="0.012011">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:12.361010" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:12.361135" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:12.361496" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:12.354601" elapsed="0.007773">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:12.362913" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:12.363392" elapsed="0.000052"/>
</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-10-15T02:54:12.363907" 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-10-15T02:54:12.364243" elapsed="0.000041"/>
</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-10-15T02:54:12.364619" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:12.364969" elapsed="0.000041"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:12.365522" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:12.365226" elapsed="0.000409"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:12.365115" elapsed="0.000573"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:12.353554" elapsed="0.012349">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:14.373696" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:14.373847" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:14.374074" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:14.367505" elapsed="0.007481">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:14.375504" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:14.375961" elapsed="0.000049"/>
</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-10-15T02:54:14.376381" elapsed="0.000042"/>
</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-10-15T02:54:14.376736" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an `index` from `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:14.377100" elapsed="0.000039"/>
</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-10-15T02:54:14.377422" elapsed="0.000065"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:14.378015" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:14.377706" elapsed="0.000419"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:14.377592" elapsed="0.000588"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:14.366697" elapsed="0.011675">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:16.387093" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:16.387215" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:16.387636" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:16.380746" elapsed="0.007798">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:16.389047" elapsed="0.000050"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:16.389494" elapsed="0.000051"/>
</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-10-15T02:54:16.390014" elapsed="0.000068"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:16.390402" 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-10-15T02:54:16.390820" 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-10-15T02:54:16.391165" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:16.391760" elapsed="0.000068"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:16.391476" elapsed="0.000425"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:16.391316" elapsed="0.000641"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:16.379162" elapsed="0.012988">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:18.399001" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:18.399068" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:18.399185" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:18.393186" elapsed="0.006509">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:18.399978" elapsed="0.000024"/>
</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-10-15T02:54:18.400207" 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-10-15T02:54:18.400439" elapsed="0.000042"/>
</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-10-15T02:54:18.400626" 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-10-15T02:54:18.400786" elapsed="0.000040"/>
</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-10-15T02:54:18.400964" elapsed="0.000019"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:18.401226" elapsed="0.000020"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:18.401100" elapsed="0.000178"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:18.401037" elapsed="0.000267"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:18.392693" elapsed="0.008705">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:20.409974" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:20.410116" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:20.410445" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:20.403073" elapsed="0.008288">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:20.411889" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:20.412313" elapsed="0.000050"/>
</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-10-15T02:54:20.412766" elapsed="0.000064"/>
</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-10-15T02:54:20.413117" elapsed="0.000041"/>
</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-10-15T02:54:20.413486" 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-10-15T02:54:20.413841" elapsed="0.000041"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:20.414370" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:20.414102" elapsed="0.000421"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:20.413988" elapsed="0.000592"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:20.402193" elapsed="0.012576">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:22.423032" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:22.423167" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:22.423391" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:22.416513" elapsed="0.008394">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:22.425383" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:22.425859" elapsed="0.000052"/>
</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-10-15T02:54:22.426303" 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-10-15T02:54:22.426678" elapsed="0.000043"/>
</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-10-15T02:54:22.427193" 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-10-15T02:54:22.427561" elapsed="0.000041"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:22.428115" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:22.427841" elapsed="0.000388"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:22.427707" elapsed="0.000577"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:22.415609" elapsed="0.012897">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:24.436854" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:24.437015" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:24.437487" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:24.430391" elapsed="0.008257">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:24.439250" elapsed="0.000065"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:24.439769" elapsed="0.000077"/>
</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-10-15T02:54:24.440279" elapsed="0.000069"/>
</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-10-15T02:54:24.440689" elapsed="0.000043"/>
</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-10-15T02:54:24.441085" elapsed="0.000056"/>
</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-10-15T02:54:24.441521" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:24.442119" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:24.441836" elapsed="0.000409"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:24.441694" elapsed="0.000620"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:24.429369" elapsed="0.013179">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:26.451054" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:26.451182" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:26.451408" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:26.444200" elapsed="0.008284">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:26.453191" 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-10-15T02:54:26.453829" 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-10-15T02:54:26.454283" 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-10-15T02:54:26.454653" 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-10-15T02:54:26.455036" 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-10-15T02:54:26.455379" elapsed="0.000041"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:26.456060" elapsed="0.000063"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:26.455675" elapsed="0.000547"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:26.455557" elapsed="0.000738"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:26.443312" elapsed="0.013270">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:28.464385" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:28.464545" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:28.464883" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:28.458157" elapsed="0.007607">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:28.466250" 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-10-15T02:54:28.466744" 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-10-15T02:54:28.467210" elapsed="0.000042"/>
</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-10-15T02:54:28.467573" elapsed="0.000538"/>
</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-10-15T02:54:28.468506" elapsed="0.000048"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:28.468881" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:28.469550" elapsed="0.000051"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:28.469174" elapsed="0.000500"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:28.469034" elapsed="0.000698"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:28.457342" elapsed="0.012603">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:30.477657" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:30.477783" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:30.478024" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:30.471526" elapsed="0.007412">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:30.479416" elapsed="0.000081"/>
</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-10-15T02:54:30.479895" elapsed="0.000052"/>
</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-10-15T02:54:30.480324" 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-10-15T02:54:30.480688" elapsed="0.000042"/>
</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-10-15T02:54:30.481056" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:30.481392" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:30.481977" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:30.481679" elapsed="0.000412"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:30.481567" elapsed="0.000578"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:30.470695" elapsed="0.011634">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:32.490443" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:32.490616" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:32.490960" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:32.484097" elapsed="0.007942">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:32.492588" elapsed="0.000052"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:32.493038" elapsed="0.000052"/>
</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-10-15T02:54:32.493499" 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-10-15T02:54:32.493913" 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-10-15T02:54:32.494272" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:32.494639" elapsed="0.000041"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:32.495192" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:32.494924" elapsed="0.000381"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:32.494788" elapsed="0.000572"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:32.483132" elapsed="0.012448">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:34.503657" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:34.503788" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:34.504039" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:34.497235" elapsed="0.007776">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:34.505530" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:34.506006" elapsed="0.000053"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:34.506438" elapsed="0.000078"/>
</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-10-15T02:54:34.506869" 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-10-15T02:54:34.507230" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:34.507603" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:34.508201" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:34.507923" elapsed="0.000398"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:34.507777" elapsed="0.000599"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:34.496368" elapsed="0.012229">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:54:34.508796" level="FAIL">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:53:34.086026" elapsed="60.423007">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:34.509379" elapsed="0.000045"/>
</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-10-15T02:54:34.510386" elapsed="0.000049"/>
</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-10-15T02:54:34.510898" elapsed="0.000052"/>
</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-10-15T02:54:34.511238" elapsed="0.000041"/>
</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-10-15T02:54:34.511607" elapsed="0.000044"/>
</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-10-15T02:54:34.512081" elapsed="0.000046"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-10-15T02:53:34.076259" elapsed="60.436215">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<test id="s1-s2-s2-t4" name="Link Up" line="69">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:54:34.518020" 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-10-15T02:54:34.514026" elapsed="0.004137"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:54:34.520972" 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-10-15T02:54:34.518534" elapsed="0.002556"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:54:34.522282" 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>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:54:34.521423" elapsed="0.000940"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:34.530589" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:34.530750" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:34.531009" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:34.524616" elapsed="0.007369">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:34.532511" elapsed="0.000053"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:34.533020" 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-10-15T02:54:34.533486" 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-10-15T02:54:34.533869" 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-10-15T02:54:34.534230" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given `dictionary` based on the given `key`.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:34.534595" elapsed="0.000044"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:34.535197" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:34.534915" elapsed="0.000397"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:34.534749" elapsed="0.000618"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:34.523926" elapsed="0.011669">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:36.544174" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:36.544302" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:36.544704" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:36.537439" elapsed="0.008216">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:36.546190" elapsed="0.000052"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:36.546684" elapsed="0.000062"/>
</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-10-15T02:54:36.547157" elapsed="0.000042"/>
</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-10-15T02:54:36.547516" 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-10-15T02:54:36.547923" 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-10-15T02:54:36.548264" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:36.548878" elapsed="0.000049"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:36.548562" elapsed="0.000436"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:36.548412" elapsed="0.000642"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:36.536612" elapsed="0.012640">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:38.557696" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:38.557821" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:38.558082" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:38.550916" elapsed="0.008080">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:38.559498" elapsed="0.000050"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:38.559938" elapsed="0.000051"/>
</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-10-15T02:54:38.560364" elapsed="0.000042"/>
</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-10-15T02:54:38.560721" elapsed="0.000041"/>
</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-10-15T02:54:38.561086" elapsed="0.000040"/>
</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-10-15T02:54:38.561411" elapsed="0.000075"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:38.562039" elapsed="0.000046"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:38.561740" elapsed="0.000414"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:38.561621" elapsed="0.000588"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:38.550062" elapsed="0.012338">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:40.570752" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:40.570915" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:40.571283" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:40.564134" elapsed="0.008127">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:40.572776" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:40.573261" 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-10-15T02:54:40.573733" 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-10-15T02:54:40.574106" 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-10-15T02:54:40.574490" 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-10-15T02:54:40.574859" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:40.575422" elapsed="0.000075"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:40.575134" elapsed="0.000445"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:40.575015" elapsed="0.000644"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:40.563240" elapsed="0.012706">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:42.584072" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:42.584198" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:42.584424" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:42.577597" elapsed="0.007744">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:42.585885" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:42.586333" elapsed="0.000066"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:42.586870" 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-10-15T02:54:42.587206" elapsed="0.000041"/>
</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-10-15T02:54:42.587586" 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-10-15T02:54:42.587954" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:42.588515" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:42.588218" elapsed="0.000410"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:42.588104" elapsed="0.000578"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:42.576766" elapsed="0.012125">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:44.596890" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:44.597014" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '425'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology/topology=flow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:44.597334" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:44.590622" elapsed="0.007642">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:44.598791" elapsed="0.000073"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-10-15T02:54:44.599749" elapsed="0.000052"/>
</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-10-15T02:54:44.600219" 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-10-15T02:54:44.600592" 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-10-15T02:54:44.600983" 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-10-15T02:54:44.601323" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:44.601922" elapsed="0.000045"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-10-15T02:54:44.601618" elapsed="0.000419"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-10-15T02:54:44.601502" elapsed="0.000605"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-10-15T02:54:44.589718" elapsed="0.012589">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:54:44.602525" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:34.522795" elapsed="10.079934">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-10-15T02:54:34.513215" elapsed="10.089866">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:54:44.604564" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:54:44.604337" elapsed="0.000384"/>
</kw>
<doc>Test suite for RESTCONF Topology</doc>
<status status="FAIL" start="2026-10-15T02:53:13.836702" elapsed="90.768090"/>
</suite>
<suite id="s1-s2-s3" name="030 Restconf Statistics" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/030_restconf_statistics.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-10-15T02:54:44.634826" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77748075d110&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-10-15T02:54:44.634168" elapsed="0.001129"/>
</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-10-15T02:54:44.647601" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:44.647724" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:44.647972" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:54:44.640686" elapsed="0.007342"/>
</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-10-15T02:54:44.648876" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:54:44.648207" elapsed="0.000789"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:54:44.650146" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:54:44.649478" elapsed="0.000889"/>
</kw>
<status status="PASS" start="2026-10-15T02:54:44.649055" elapsed="0.001422"/>
</branch>
<status status="PASS" start="2026-10-15T02:54:44.648164" elapsed="0.002365"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:44.651258" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:54:44.650829" elapsed="0.001237">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:44.652651" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:54:44.652329" elapsed="0.000444"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:54:44.652208" elapsed="0.000619"/>
</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-10-15T02:54:44.640154" elapsed="0.012895">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:46.661367" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:46.661432" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:46.661584" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:54:46.656966" elapsed="0.004644"/>
</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-10-15T02:54:46.662059" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:54:46.661729" elapsed="0.000396"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:54:46.662720" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:54:46.662351" elapsed="0.000424"/>
</kw>
<status status="PASS" start="2026-10-15T02:54:46.662155" elapsed="0.000653"/>
</branch>
<status status="PASS" start="2026-10-15T02:54:46.661701" elapsed="0.001129"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:46.663205" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:54:46.662982" elapsed="0.000613">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:46.663904" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:54:46.663741" elapsed="0.000218"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:54:46.663682" elapsed="0.000303"/>
</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-10-15T02:54:46.656384" elapsed="0.007702">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:48.671485" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:48.671591" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:48.671799" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:54:48.667062" elapsed="0.004809"/>
</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-10-15T02:54:48.672767" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:54:48.672124" elapsed="0.000784"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:54:48.673792" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:54:48.673235" elapsed="0.000693"/>
</kw>
<status status="PASS" start="2026-10-15T02:54:48.672948" elapsed="0.001056"/>
</branch>
<status status="PASS" start="2026-10-15T02:54:48.672076" elapsed="0.001978"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:48.674630" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:54:48.674292" elapsed="0.000994">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:48.675811" elapsed="0.000055"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:54:48.675509" elapsed="0.000413"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:54:48.675387" elapsed="0.000573"/>
</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-10-15T02:54:48.666556" elapsed="0.009540">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:50.689313" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:50.689438" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:50.689705" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:54:50.682727" elapsed="0.007033"/>
</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-10-15T02:54:50.690726" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:54:50.689971" elapsed="0.000958"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:54:50.692174" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:54:50.691420" elapsed="0.000896"/>
</kw>
<status status="PASS" start="2026-10-15T02:54:50.691010" elapsed="0.001381"/>
</branch>
<status status="PASS" start="2026-10-15T02:54:50.689926" elapsed="0.002512"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:50.693199" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:54:50.692768" elapsed="0.001282">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:50.694699" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:54:50.694361" elapsed="0.000486"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:54:50.694209" elapsed="0.000748"/>
</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-10-15T02:54:50.681486" elapsed="0.013731">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:52.710267" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:52.710562" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:52.710830" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:54:52.704079" elapsed="0.006837"/>
</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-10-15T02:54:52.711828" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:54:52.711148" elapsed="0.000840"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:54:52.713182" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:54:52.712425" elapsed="0.000882"/>
</kw>
<status status="PASS" start="2026-10-15T02:54:52.712044" elapsed="0.001338"/>
</branch>
<status status="PASS" start="2026-10-15T02:54:52.711098" elapsed="0.002332"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:52.714198" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:54:52.713775" elapsed="0.001335">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:52.715755" elapsed="0.000052"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:54:52.715389" elapsed="0.000523"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:54:52.715260" elapsed="0.000712"/>
</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-10-15T02:54:52.703084" elapsed="0.013086">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:54.725195" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:54.725277" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:54.725420" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:54:54.720137" elapsed="0.005343"/>
</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-10-15T02:54:54.725992" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:54:54.725605" elapsed="0.000458"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:54:54.726775" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:54:54.726330" elapsed="0.000504"/>
</kw>
<status status="PASS" start="2026-10-15T02:54:54.726097" elapsed="0.000827"/>
</branch>
<status status="PASS" start="2026-10-15T02:54:54.725576" elapsed="0.001371"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:54.727315" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:54:54.727104" elapsed="0.000622">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:54.728011" elapsed="0.000023"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:54:54.727853" elapsed="0.000293"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:54:54.727795" elapsed="0.000392"/>
</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-10-15T02:54:54.719495" elapsed="0.008820">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:54:54.728436" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:44.636695" elapsed="10.091880">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the stats for all nodes</doc>
<status status="FAIL" start="2026-10-15T02:54:44.635545" elapsed="10.093234">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:54.734810" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:54.734880" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:54.734986" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:54.731708" elapsed="0.003778">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:54.735671" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:54.735846" elapsed="0.000041"/>
</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-10-15T02:54:54.731389" elapsed="0.004612">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:56.745969" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:56.746091" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:56.746316" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:56.739679" elapsed="0.007578">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:56.747738" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:56.748142" elapsed="0.000042"/>
</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-10-15T02:54:56.738727" elapsed="0.009676">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:54:58.756045" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:54:58.756127" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:54:58.756274" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:58.751189" elapsed="0.005838">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:58.757423" elapsed="0.000078"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:54:58.757804" elapsed="0.000041"/>
</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-10-15T02:54:58.750542" elapsed="0.007514">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:00.768264" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:00.768382" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:00.768643" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:00.761929" elapsed="0.007673">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:00.770100" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:00.770502" elapsed="0.000042"/>
</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-10-15T02:55:00.761070" elapsed="0.009726">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:02.781843" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:02.782009" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:02.782285" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:02.775392" elapsed="0.008154">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:02.784234" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:02.784661" elapsed="0.000058"/>
</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-10-15T02:55:02.774412" elapsed="0.010561">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:04.794581" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:04.794730" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:04.794967" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:04.788390" elapsed="0.007291">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:04.796108" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:04.796365" elapsed="0.000032"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-10-15T02:55:04.787610" elapsed="0.008979">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:55:04.796752" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:54:54.729713" elapsed="10.067192">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-10-15T02:54:54.729159" elapsed="10.068018">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:04.804179" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:04.804236" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:04.804338" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:04.800137" elapsed="0.004628">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:04.805016" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:04.805267" elapsed="0.000032"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-10-15T02:55:04.799753" elapsed="0.005785">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:06.815084" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:06.815208" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:06.815426" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:06.809105" elapsed="0.007235">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:06.816818" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:06.817258" 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-10-15T02:55:06.808272" elapsed="0.009284">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:08.827702" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:08.827820" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:08.828073" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:08.821639" elapsed="0.007338">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:08.829373" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:08.829759" elapsed="0.000042"/>
</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-10-15T02:55:08.820851" elapsed="0.009166">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:10.840379" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:10.840548" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:10.841079" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:10.834015" elapsed="0.008067">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:10.842552" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:10.842956" 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-10-15T02:55:10.833018" elapsed="0.010189">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:12.852867" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:12.853011" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:12.853231" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:12.846716" elapsed="0.007431">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:12.854589" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:12.854981" elapsed="0.000043"/>
</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-10-15T02:55:12.845927" elapsed="0.009295">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:14.864810" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:14.864955" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:14.865170" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:14.858834" elapsed="0.007241">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:14.866511" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:14.866864" elapsed="0.000072"/>
</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-10-15T02:55:14.858026" elapsed="0.009126">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:55:14.867333" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:04.797980" elapsed="10.069580">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-10-15T02:55:04.797423" elapsed="10.070569">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:14.879356" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:14.879512" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:14.879726" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:14.873744" elapsed="0.006873">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:14.881059" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:14.881414" elapsed="0.000073"/>
</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-10-15T02:55:14.873069" elapsed="0.008614">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:16.891751" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:16.891884" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:16.892150" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:16.885501" elapsed="0.007833">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:16.893831" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:16.894241" elapsed="0.000044"/>
</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-10-15T02:55:16.884623" elapsed="0.009958">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:18.904087" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:18.904212" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:18.904573" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:18.898146" elapsed="0.007333">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:18.905940" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:18.906308" elapsed="0.000042"/>
</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-10-15T02:55:18.897324" elapsed="0.009259">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:20.917842" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:20.918024" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:20.918272" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:20.911106" elapsed="0.008138">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:20.919760" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:20.920163" 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-10-15T02:55:20.910055" elapsed="0.010363">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:22.930383" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:22.930542" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:22.930780" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:22.924559" elapsed="0.007134">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:22.932125" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:22.932513" elapsed="0.000044"/>
</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-10-15T02:55:22.923741" elapsed="0.009006">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:24.942090" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:24.942306" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A3&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:24.942560" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:24.936122" elapsed="0.007313">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:24.943876" elapsed="0.000076"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:24.944262" elapsed="0.000042"/>
</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-10-15T02:55:24.935330" elapsed="0.009194">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:55:24.944710" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:14.869674" elapsed="10.075232">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-10-15T02:55:14.868715" elapsed="10.076519">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:55:24.946502" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:55:24.946306" elapsed="0.000329"/>
</kw>
<doc>Test suite for RESTCONF statistics</doc>
<status status="FAIL" start="2026-10-15T02:54:44.606737" elapsed="40.339965"/>
</suite>
<suite id="s1-s2-s4" name="040 Restconf Frm" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/040_restconf_frm.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-10-15T02:55:24.975358" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x777481063b90&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-10-15T02:55:24.974780" elapsed="0.000930"/>
</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-10-15T02:55:24.985072" level="INFO">PUT Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Content-Length': '429', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=&lt;flow xmlns="urn:opendaylight:flow:inventory"&gt;&lt;priority&gt;2&lt;/priority&gt;&lt;flow-name&gt;Foo&lt;/flow-name&gt;&lt;match&gt;&lt;ethernet-match&gt;&lt;ethernet-type&gt;&lt;type&gt;2048&lt;/type&gt;&lt;/ethernet-type&gt;&lt;/ethernet-match&gt;&lt;ipv4-destination&gt;10.0.10.1/32&lt;/ipv4-destination&gt;&lt;/match&gt;&lt;id&gt;139&lt;/id&gt;&lt;table_id&gt;2&lt;/table_id&gt;&lt;instructions&gt;&lt;instruction&gt;&lt;order&gt;0&lt;/order&gt;&lt;apply-actions&gt;&lt;action&gt;&lt;order&gt;0&lt;/order&gt;&lt;dec-nw-ttl/&gt;&lt;/action&gt;&lt;/apply-actions&gt;&lt;/instruction&gt;&lt;/instructions&gt;&lt;/flow&gt; 
 </msg>
<msg time="2026-10-15T02:55:24.985189" level="INFO">PUT Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 
 status=404, reason=Not Found 
 headers={'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:24.985367" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</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-10-15T02:55:24.977045" elapsed="0.009088">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</status>
</kw>
<doc>Push a flow through REST-API</doc>
<status status="FAIL" start="2026-10-15T02:55:24.975855" elapsed="0.010586">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</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-10-15T02:55:24.993050" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:24.993229" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:24.993424" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config Expected status: 404 != 200</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-10-15T02:55:24.987944" elapsed="0.006320">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>139</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:24.994666" elapsed="0.000046"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:55:24.987113" elapsed="0.007875">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config Expected status: 404 != 200</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-10-15T02:55:24.996976" level="INFO">${elements} = ['10.0.10.1']</msg>
<var>${elements}</var>
<arg>10.0.10.1</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:55:24.996318" elapsed="0.000715"/>
</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-10-15T02:55:25.006561" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:25.006677" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:25.006896" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:25.001710" elapsed="0.005263"/>
</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-10-15T02:55:25.007716" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:25.007143" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:25.008902" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:25.008255" elapsed="0.000793"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:25.007884" elapsed="0.001233"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:25.007102" elapsed="0.002064"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:25.009851" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:25.009484" elapsed="0.001076">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:25.011127" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:25.010825" elapsed="0.000417"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:25.010706" elapsed="0.000590"/>
</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-10-15T02:55:25.000785" elapsed="0.010724">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:27.021748" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:27.022004" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:27.022231" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:27.015334" elapsed="0.006951"/>
</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-10-15T02:55:27.023105" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:27.022495" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:27.024360" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:27.023668" elapsed="0.000844"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:27.023278" elapsed="0.001309"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:27.022421" elapsed="0.002213"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:27.025329" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:27.024948" elapsed="0.001181">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:27.026712" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:27.026384" elapsed="0.000444"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:27.026268" elapsed="0.000615"/>
</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-10-15T02:55:27.014308" elapsed="0.012783">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:29.036213" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:29.036271" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:29.036373" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:29.029083" elapsed="0.007315"/>
</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-10-15T02:55:29.036772" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:29.036509" elapsed="0.000316"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:29.037334" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:29.037024" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:29.036848" elapsed="0.000571"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:29.036487" elapsed="0.000952"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:29.037767" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:29.037584" elapsed="0.000618">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:29.038718" elapsed="0.000022"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:29.038321" elapsed="0.000453"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:29.038267" elapsed="0.000532"/>
</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-10-15T02:55:29.028568" elapsed="0.010319">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:31.049302" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:31.049421" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:31.049688" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:31.042579" elapsed="0.007165"/>
</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-10-15T02:55:31.050539" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:31.049923" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:31.051790" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:31.051091" elapsed="0.000818"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:31.050711" elapsed="0.001399"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:31.049881" elapsed="0.002278"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:31.052870" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:31.052480" elapsed="0.001183">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:31.054238" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:31.053922" elapsed="0.000433"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:31.053804" 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.10.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-15T02:55:31.041552" elapsed="0.013085">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:33.065311" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:33.065487" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:33.065865" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:33.058431" elapsed="0.007521"/>
</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-10-15T02:55:33.066830" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:33.066160" elapsed="0.000826"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:33.068277" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:33.067503" elapsed="0.000904"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:33.067047" elapsed="0.001473"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:33.066112" elapsed="0.002459"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:33.069335" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:33.068889" elapsed="0.001294">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:33.070822" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:33.070495" elapsed="0.000470"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:33.070337" elapsed="0.000687"/>
</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-10-15T02:55:33.057367" elapsed="0.013860">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:35.082549" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:35.082717" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:35.083045" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:35.075871" elapsed="0.007267"/>
</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-10-15T02:55:35.084270" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:35.083375" elapsed="0.001066"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:35.086226" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:35.084959" elapsed="0.001387"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:35.084552" elapsed="0.001868"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:35.083328" elapsed="0.003174"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:35.087209" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:35.086797" elapsed="0.001200">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:35.088627" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:35.088295" elapsed="0.000450"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:35.088171" elapsed="0.000628"/>
</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-10-15T02:55:35.074757" elapsed="0.014349">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:55:35.089294" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:24.997399" elapsed="10.092133">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:55:24.995347" elapsed="10.094496">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:35.096327" level="INFO">PUT Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Content-Length': '522', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=&lt;flow xmlns="urn:opendaylight:flow:inventory"&gt;&lt;priority&gt;2&lt;/priority&gt;&lt;flow-name&gt;Foo&lt;/flow-name&gt;&lt;match&gt;&lt;ethernet-match&gt;&lt;ethernet-type&gt;&lt;type&gt;2048&lt;/type&gt;&lt;/ethernet-type&gt;&lt;/ethernet-match&gt;&lt;ipv4-destination&gt;10.0.20.1/32&lt;/ipv4-destination&gt;&lt;/match&gt;&lt;id&gt;139&lt;/id&gt;&lt;table_id&gt;2&lt;/table_id&gt;&lt;instructions&gt;&lt;instruction&gt;&lt;order&gt;0&lt;/order&gt;&lt;apply-actions&gt;&lt;action&gt;&lt;order&gt;0&lt;/order&gt;&lt;output-action&gt;&lt;output-node-connector&gt;1&lt;/output-node-connector&gt;&lt;max-length&gt;60&lt;/max-length&gt;&lt;/output-action&gt;&lt;/action&gt;&lt;/apply-actions&gt;&lt;/instruction&gt;&lt;/instructions&gt;&lt;/flow&gt; 
 </msg>
<msg time="2026-10-15T02:55:35.096483" level="INFO">PUT Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 
 status=404, reason=Not Found 
 headers={'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:35.096660" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 Expected status: 404 != 204</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-10-15T02:55:35.091121" elapsed="0.006368">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 Expected status: 404 != 204</status>
</kw>
<doc>Push a flow through REST-API</doc>
<status status="FAIL" start="2026-10-15T02:55:35.090265" elapsed="0.007539">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 Expected status: 404 != 204</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-10-15T02:55:35.104102" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:35.104213" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:35.104409" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config Expected status: 404 != 200</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-10-15T02:55:35.099219" elapsed="0.006034">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config Expected status: 404 != 200</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>10.0.20.1</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:35.105676" elapsed="0.000047"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:55:35.098194" elapsed="0.007817">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config Expected status: 404 != 200</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-10-15T02:55:35.108091" level="INFO">${elements} = ['10.0.20.1']</msg>
<var>${elements}</var>
<arg>10.0.20.1</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:55:35.107412" elapsed="0.000736"/>
</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-10-15T02:55:35.117721" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:35.117953" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:35.118176" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:35.112322" elapsed="0.005908"/>
</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-10-15T02:55:35.119042" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:35.118408" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:35.120273" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:35.119597" elapsed="0.000792"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:35.119211" elapsed="0.001283"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:35.118364" elapsed="0.002180"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:35.121247" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:35.120833" elapsed="0.001175">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:35.122588" elapsed="0.000045"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:35.122264" elapsed="0.000440"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:35.122146" elapsed="0.000612"/>
</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-10-15T02:55:35.111408" elapsed="0.011556">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:37.133692" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:37.133815" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:37.134084" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:37.127482" elapsed="0.006659"/>
</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-10-15T02:55:37.134963" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:37.134321" elapsed="0.000763"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:37.136245" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:37.135536" elapsed="0.000996"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:37.135138" elapsed="0.001471"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:37.134277" elapsed="0.002379"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:37.137417" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:37.137020" elapsed="0.001195">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:37.138807" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:37.138506" elapsed="0.000416"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:37.138354" elapsed="0.000650"/>
</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-10-15T02:55:37.126385" elapsed="0.012811">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:39.151433" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:39.151694" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:39.152016" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:39.143772" elapsed="0.008304"/>
</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-10-15T02:55:39.153067" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:39.152300" elapsed="0.000894"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:39.154442" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:39.153669" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:39.153249" elapsed="0.001414"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:39.152245" elapsed="0.002463"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:39.155430" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:39.155032" elapsed="0.001246">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:39.156922" elapsed="0.000067"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:39.156608" elapsed="0.000453"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:39.156430" elapsed="0.000685"/>
</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-10-15T02:55:39.142301" elapsed="0.015014">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:41.167438" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:41.167664" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:41.168148" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:41.161039" elapsed="0.007187"/>
</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-10-15T02:55:41.169587" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:41.168683" elapsed="0.001081"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:41.171506" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:41.170425" elapsed="0.001259"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:41.169843" elapsed="0.001946"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:41.168613" elapsed="0.003247"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:41.172925" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:41.172335" elapsed="0.001521">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:41.175270" elapsed="0.000060"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:41.174198" elapsed="0.001213"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:41.174032" elapsed="0.001481"/>
</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-10-15T02:55:41.159996" elapsed="0.015812">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:43.185742" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:43.185858" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:43.186100" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:43.179578" elapsed="0.006576"/>
</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-10-15T02:55:43.186986" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:43.186333" elapsed="0.000790"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:43.188277" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:43.187580" elapsed="0.000813"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:43.187179" elapsed="0.001314"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:43.186290" elapsed="0.002251"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:43.189282" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:43.188829" elapsed="0.001224">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:43.190634" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:43.190310" elapsed="0.000438"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:43.190191" elapsed="0.000610"/>
</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-10-15T02:55:43.178516" elapsed="0.012590">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:45.199997" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:45.200090" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '457'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:45.200256" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:45.193946" elapsed="0.006348"/>
</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-10-15T02:55:45.200884" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:45.200436" elapsed="0.000539"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:45.201666" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:45.201253" elapsed="0.000484"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:45.201023" elapsed="0.000758"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:45.200401" elapsed="0.001409"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:45.202189" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:45.201986" elapsed="0.000685">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:45.203080" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:45.202856" elapsed="0.000304"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:45.202768" elapsed="0.000432"/>
</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-10-15T02:55:45.193143" elapsed="0.010189">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:55:45.203487" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:35.108548" elapsed="10.095068">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:55:35.106378" elapsed="10.097465">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:45.209408" level="INFO">DELETE Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:45.209490" level="INFO">DELETE Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 
 status=404, reason=Not Found 
 headers={'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:45.209606" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 Expected status: 404 != 204</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-10-15T02:55:45.204706" elapsed="0.005411">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 Expected status: 404 != 204</status>
</kw>
<doc>Remove a flow</doc>
<status status="FAIL" start="2026-10-15T02:55:45.204147" elapsed="0.006128">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 Expected status: 404 != 204</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-10-15T02:55:45.216930" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:45.217030" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:45.217180" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config Expected status: 404 != 200</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-10-15T02:55:45.211182" elapsed="0.006579">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config Expected status: 404 != 200</status>
</kw>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>139</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:45.217995" elapsed="0.000029"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:55:45.210727" elapsed="0.007497">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config Expected status: 404 != 200</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-10-15T02:55:45.219741" level="INFO">${elements} = ['10.0.20.1']</msg>
<var>${elements}</var>
<arg>10.0.20.1</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:55:45.219252" elapsed="0.000527"/>
</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-10-15T02:55:45.228133" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:45.228196" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:45.228296" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:45.224102" elapsed="0.004218"/>
</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-10-15T02:55:45.228793" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:45.228409" elapsed="0.000463"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:45.229628" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:45.229175" elapsed="0.000533"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:45.228912" elapsed="0.000845"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:45.228387" elapsed="0.001402"/>
</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-10-15T02:55:45.230100" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:55:45.230042" elapsed="0.000124"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:55:45.230020" elapsed="0.000179"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:55:45.229870" elapsed="0.000352"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:45.229846" elapsed="0.000446"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:45.230637" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:45.230431" elapsed="0.000684">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:45.231518" elapsed="0.000033"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:45.231300" elapsed="0.000300"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:45.231210" elapsed="0.000430"/>
</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-10-15T02:55:45.223403" elapsed="0.008371">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:47.244135" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:47.244255" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:47.244516" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:47.237799" elapsed="0.006773"/>
</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-10-15T02:55:47.245355" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:47.244760" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:47.246647" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:47.245916" elapsed="0.000849"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:47.245561" elapsed="0.001276"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:47.244717" elapsed="0.002168"/>
</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-10-15T02:55:47.247329" elapsed="0.000030"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:55:47.247256" elapsed="0.000155"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:55:47.247226" elapsed="0.000293"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:55:47.247025" elapsed="0.000546"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:47.246990" elapsed="0.000626"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:47.248307" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:47.247904" elapsed="0.001176">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:47.249674" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:47.249330" elapsed="0.000461"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:47.249219" elapsed="0.000625"/>
</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-10-15T02:55:47.236718" elapsed="0.013332">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:49.264262" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:49.264527" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:49.264815" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:49.257157" elapsed="0.007719"/>
</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-10-15T02:55:49.265821" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:49.265111" elapsed="0.000838"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:49.267252" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:49.266475" elapsed="0.000901"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:49.266026" elapsed="0.001456"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:49.265065" elapsed="0.002486"/>
</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-10-15T02:55:49.268027" elapsed="0.000032"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:55:49.267926" elapsed="0.000190"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:55:49.267882" elapsed="0.000280"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:55:49.267674" elapsed="0.000551"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:49.267639" elapsed="0.000632"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:49.269064" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:49.268621" elapsed="0.001282">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:49.270562" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:49.270212" elapsed="0.000476"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:49.270071" elapsed="0.000674"/>
</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-10-15T02:55:49.256016" elapsed="0.014927">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:51.284082" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:51.284213" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:51.284535" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:51.277272" elapsed="0.007328"/>
</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-10-15T02:55:51.285424" elapsed="0.000092"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:51.284790" elapsed="0.000803"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:51.287206" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:51.286229" elapsed="0.001341"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:51.285673" elapsed="0.001980"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:51.284744" elapsed="0.002969"/>
</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-10-15T02:55:51.288364" elapsed="0.000050"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:55:51.288248" elapsed="0.000284"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:55:51.288200" elapsed="0.000382"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:55:51.287887" elapsed="0.000740"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:51.287837" elapsed="0.000831"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:51.289589" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:51.289023" elapsed="0.001365">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:51.291072" elapsed="0.000056"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:51.290679" elapsed="0.000529"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:51.290562" elapsed="0.000701"/>
</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-10-15T02:55:51.276145" elapsed="0.015424">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:53.307822" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:53.308038" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:53.308374" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:53.299605" elapsed="0.008892"/>
</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-10-15T02:55:53.309721" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:53.308780" elapsed="0.001124"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:53.311889" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:53.310494" elapsed="0.001573"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:53.310008" elapsed="0.002163"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:53.308712" elapsed="0.003526"/>
</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-10-15T02:55:53.312773" elapsed="0.000030"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:55:53.312696" elapsed="0.000164"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:55:53.312664" elapsed="0.000245"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:55:53.312387" elapsed="0.000610"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:53.312350" elapsed="0.000714"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:53.313872" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:53.313415" elapsed="0.001422">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:53.315533" elapsed="0.000058"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:53.315185" elapsed="0.000502"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:53.315031" elapsed="0.000713"/>
</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-10-15T02:55:53.298373" elapsed="0.017635">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:55.329835" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:55.329959" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:55.330215" level="INFO">${resp} = &lt;Response [404]&gt;</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="PASS" start="2026-10-15T02:55:55.322862" elapsed="0.007410"/>
</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-10-15T02:55:55.331129" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:55.330507" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:55.332396" level="INFO">&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:55.331724" elapsed="0.000820"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:55.331310" elapsed="0.001305"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:55.330427" elapsed="0.002233"/>
</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-10-15T02:55:55.333124" elapsed="0.000029"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:55:55.333032" elapsed="0.000172"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:55:55.333001" elapsed="0.000247"/>
</if>
<status status="NOT RUN" start="2026-10-15T02:55:55.332776" elapsed="0.000518"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:55.332743" elapsed="0.000593"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<msg time="2026-10-15T02:55:55.334087" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</msg>
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="FAIL" start="2026-10-15T02:55:55.333672" elapsed="0.001194">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:55.335474" elapsed="0.000046"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-10-15T02:55:55.335148" elapsed="0.000455"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-10-15T02:55:55.335033" elapsed="0.000626"/>
</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-10-15T02:55:55.321675" elapsed="0.014175">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:55:55.336083" level="FAIL">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</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-10-15T02:55:45.220056" elapsed="10.116230">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-10-15T02:55:45.218651" elapsed="10.118012">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:55:55.338151" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:55:55.337951" elapsed="0.000347"/>
</kw>
<doc>Test suite for RESTCONF FRM</doc>
<status status="FAIL" start="2026-10-15T02:55:24.948184" elapsed="30.390185"/>
</suite>
<kw name="Stop Mininet" owner="Utils" type="TEARDOWN">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:55.341756" 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-10-15T02:55:55.341252" elapsed="0.000600"/>
</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-10-15T02:55:55.342340" elapsed="0.000294"/>
</kw>
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-10-15T02:55:55.342926" elapsed="0.000279"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:55:55.348446" 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-10-15T02:55:55.343511" elapsed="0.005085"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:55:55.622255" 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 232.846 seconds
[?2004h[jenkins@releng-38703-72-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-10-15T02:55:55.348913" elapsed="0.273406"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:55:55.622480" elapsed="0.000485"/>
</kw>
<doc>Cleanup/Shutdown work that should be done at the completion of all
tests</doc>
<status status="PASS" start="2026-10-15T02:55:55.340625" elapsed="0.282423"/>
</kw>
<doc>Test suite for MD-SAL NSF mininet OF13</doc>
<status status="FAIL" start="2026-10-15T02:51:59.909714" elapsed="235.713363"/>
</suite>
<suite id="s1-s3" name="Stat Manager extended" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:55:55.636528" 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-10-15T02:55:55.636291" elapsed="0.000280"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:55.638563" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:55.638331" elapsed="0.000286"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:55.638313" elapsed="0.000326"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:55:55.638958" 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-10-15T02:55:55.639073" 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-10-15T02:55:55.638814" elapsed="0.000283"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:55.639586" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.55" 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-10-15T02:55:55.639266" elapsed="0.000364"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:55:55.640098" 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-10-15T02:55:55.639781" elapsed="0.000342"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:55:55.640873" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:55:55.640984" 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-10-15T02:55:55.640599" elapsed="0.000410"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:55:55.641132" elapsed="0.000303"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:55:55.642189" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:55:56.262289" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:55:55 UTC 2026

  System load:  0.0                Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:52:02 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:55:55.641944" elapsed="0.620535"/>
</kw>
<msg time="2026-10-15T02:55:56.262568" 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-10-15T02:55:55.641587" elapsed="0.621064"/>
</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-10-15T02:55:55.640305" elapsed="0.622456"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:55:56.263318" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-10-15T02:55:57.468174" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:55:57.468597" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:55:57.468697" 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-10-15T02:55:56.263047" elapsed="1.205809"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:55:57.469267" elapsed="0.000612"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:57.471000" 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-10-15T02:55:57.470333" elapsed="0.000787"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:55:57.471576" elapsed="0.000037"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:55:57.471292" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:57.471241" elapsed="0.000488"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:55:57.472063" elapsed="0.000208"/>
</return>
<status status="PASS" start="2026-10-15T02:55:57.471837" elapsed="0.000500"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:57.471806" elapsed="0.000581"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:55:57.472486" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:55:57.473946" elapsed="0.000758"/>
</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-10-15T02:55:57.475087" elapsed="0.000332"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:55:57.475711" elapsed="0.000225"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:55:57.473155" elapsed="0.002916"/>
</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-10-15T02:55:55.637943" elapsed="1.838287"/>
</kw>
<msg time="2026-10-15T02:55:57.476337" 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-10-15T02:55:55.637416" elapsed="1.839060"/>
</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-10-15T02:55:55.637065" elapsed="1.839574"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:57.480570" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:55:57.480018" elapsed="0.000675"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:57.479947" elapsed="0.000795"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:55:57.481584" 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-10-15T02:55:57.481802" 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-10-15T02:55:57.481236" elapsed="0.000643"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:57.483137" 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.55" 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-10-15T02:55:57.482377" elapsed="0.000914"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:55:57.484503" 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-10-15T02:55:57.483684" elapsed="0.000877"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:55:57.486575" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:55:57.486766" 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-10-15T02:55:57.485769" elapsed="0.001048"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:55:57.487181" elapsed="0.000906"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:55:57.490063" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:55:57.870036" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:55:55 UTC 2026

  System load:  0.0                Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:55:56 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:55:57.489485" elapsed="0.380736"/>
</kw>
<msg time="2026-10-15T02:55:57.870325" 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-10-15T02:55:57.488527" elapsed="0.381893"/>
</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-10-15T02:55:57.484966" elapsed="0.385609"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:55:57.871155" 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-10-15T02:55:57.914215" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-10-15T02:55:57.914502" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:55:57.914596" 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-10-15T02:55:57.870876" elapsed="0.043768"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:55:57.914961" elapsed="0.000462"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:55:57.916485" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:55:57.915866" elapsed="0.000712"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:55:57.917006" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:55:57.916742" elapsed="0.000366"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:57.916695" elapsed="0.000462"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:55:57.917479" elapsed="0.000063"/>
</return>
<status status="PASS" start="2026-10-15T02:55:57.917267" elapsed="0.000345"/>
</branch>
<status status="PASS" start="2026-10-15T02:55:57.917235" elapsed="0.000427"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:55:57.917731" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:55:57.919219" elapsed="0.000676"/>
</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-10-15T02:55:57.920308" elapsed="0.000364"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:55:57.920932" elapsed="0.000237"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:55:57.918349" elapsed="0.002958"/>
</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-10-15T02:55:57.479049" elapsed="0.442501"/>
</kw>
<msg time="2026-10-15T02:55:57.921699" 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-10-15T02:55:57.477748" elapsed="0.444093"/>
</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-10-15T02:55:57.476928" elapsed="0.445150"/>
</kw>
<status status="PASS" start="2026-10-15T02:55:55.636786" elapsed="2.285449"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:55:57.924061" 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-10-15T02:55:57.922750" elapsed="0.001394"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:55:57.925502" level="INFO">${mininet_conn_id} = 15</msg>
<arg>${mininet_conn_id}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:55:57.924698" elapsed="0.000896"/>
</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-10-15T02:55:57.927889" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:55:57.928010" 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-10-15T02:55:57.927532" elapsed="0.000510"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:55:57.928342" elapsed="0.000450"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:55:57.929834" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:55:58.335084" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:55:55 UTC 2026

  System load:  0.0                Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:55:57 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:55:57.929502" elapsed="0.405739"/>
</kw>
<msg time="2026-10-15T02:55:58.335326" 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-10-15T02:55:57.929002" elapsed="0.406401"/>
</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-10-15T02:55:57.927034" elapsed="0.408494"/>
</kw>
<msg time="2026-10-15T02:55:58.335578" 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-10-15T02:55:57.926525" elapsed="0.409096"/>
</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-10-15T02:55:57.926004" elapsed="0.409689"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:55:58.336101" level="INFO">Executing command 'sudo ovs-vsctl set-manager ptcp:6644'.</msg>
<msg time="2026-10-15T02:55:58.379283" 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-10-15T02:55:58.335940" elapsed="0.043461"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:55:58.421958" level="INFO">sudo mn --controller=remote,ip=10.30.171.74 --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-10-15T02:55:58.379659" elapsed="0.042440"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:55:58.618139" level="INFO">[?2004l*** Creating network
*** Adding controller
Connecting to remote controller at 10.30.171.74: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-10-15T02:55:58.422348" elapsed="0.195943"/>
</kw>
<doc>Basic setup/cleanup work that can be done safely before any system
is run.</doc>
<status status="PASS" start="2026-10-15T02:55:55.635912" elapsed="2.982481"/>
</kw>
<suite id="s1-s3-s1" name="010 SM add upd del flows" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:55:58.744197" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x777480593b90&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-10-15T02:55:58.743865" elapsed="0.000509"/>
</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-10-15T02:55:58.752831" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:58.752930" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:58.753121" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:55:58.746086" elapsed="0.007611">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:58.753928" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:58.754240" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:58.754433" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:55:58.745938" elapsed="0.008619">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:55:58.745644" elapsed="0.008976">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:55:58.745411" elapsed="0.009305">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:55:59.762928" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:55:59.763078" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:55:59.763300" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:55:59.756840" elapsed="0.007379">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:59.764762" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:59.765170" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:55:59.765579" elapsed="0.000042"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:55:59.756579" elapsed="0.009154">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:55:59.756067" elapsed="0.009781">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:55:59.755587" elapsed="0.010478">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:00.774438" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:00.774600" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:00.774817" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:00.768349" elapsed="0.007391">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:00.776322" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:00.776738" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:00.777132" elapsed="0.000042"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:00.768058" elapsed="0.009228">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:00.767491" elapsed="0.010036">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:00.766978" elapsed="0.010757">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:01.783624" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:01.783686" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:01.783811" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:01.779341" elapsed="0.004915">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:01.784532" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:01.784708" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:01.784873" elapsed="0.000018"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:01.778926" elapsed="0.006018">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:01.778671" elapsed="0.006350">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:01.778363" elapsed="0.006753">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:02.793540" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:02.793667" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:02.793886" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:02.787197" elapsed="0.007633">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:02.795383" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:02.795792" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:02.796170" elapsed="0.000041"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:02.786903" elapsed="0.009418">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:02.786397" elapsed="0.010043">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:02.785921" elapsed="0.010751">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:03.803568" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:03.803806" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:03.804073" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:03.798297" elapsed="0.006759">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:03.805642" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:03.806080" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:03.806501" elapsed="0.000047"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:03.798122" elapsed="0.008546">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:03.797787" elapsed="0.009011">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:03.797376" elapsed="0.009659">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:04.815892" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:04.816055" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:04.816319" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:04.809498" elapsed="0.009913">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:04.820035" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:04.820493" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:04.820901" elapsed="0.000049"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:04.809168" elapsed="0.011930">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:04.808610" elapsed="0.012626">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:04.808024" elapsed="0.013466">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:05.829330" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:05.829481" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:05.829783" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:05.823652" elapsed="0.007013">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:05.831195" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:05.831598" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:05.831953" elapsed="0.000057"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:05.823363" elapsed="0.008756">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:05.822849" elapsed="0.009386">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:05.822347" elapsed="0.010079">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:06.841137" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:06.841262" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:06.841525" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:06.834650" elapsed="0.007753">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:06.842944" elapsed="0.000072"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:06.843343" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:06.843733" elapsed="0.000049"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:06.834352" elapsed="0.009540">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:06.833798" elapsed="0.010231">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:06.833307" elapsed="0.010930">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:07.852811" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:07.852933" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:07.853223" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:07.846550" elapsed="0.007584">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:07.854666" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:07.855167" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:07.855575" elapsed="0.000044"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:07.846244" elapsed="0.009486">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:07.845735" elapsed="0.010113">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:07.845141" elapsed="0.010948">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:56:07.856287" level="FAIL">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:55:58.744578" elapsed="9.111945">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:07.856896" elapsed="0.000046"/>
</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-10-15T02:56:07.857292" elapsed="0.000042"/>
</kw>
<doc>Initiate tcp connection with controller</doc>
<status status="FAIL" start="2026-10-15T02:55:58.742964" elapsed="9.114572">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:07.857705" elapsed="0.001163">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t2" name="Test Is Flow 1 Added" line="51">
<status status="FAIL" start="2026-10-15T02:56:07.859756" elapsed="0.001544">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t3" name="Test Is Flow 2 Added" line="53">
<status status="FAIL" start="2026-10-15T02:56:07.862144" elapsed="0.001738">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t4" name="Test Is Flow 3 Added" line="55">
<status status="FAIL" start="2026-10-15T02:56:07.865024" elapsed="0.000702">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t5" name="Test Is Flow 4 Added" line="57">
<status status="FAIL" start="2026-10-15T02:56:07.866084" elapsed="0.000866">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t6" name="Test Is Flow 5 Added" line="59">
<status status="FAIL" start="2026-10-15T02:56:07.868497" elapsed="0.001188">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t7" name="Test Is Flow 6 Added" line="61">
<status status="FAIL" start="2026-10-15T02:56:07.870306" elapsed="0.000737">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t8" name="Test Is Flow 7 Added" line="63">
<status status="FAIL" start="2026-10-15T02:56:07.871391" elapsed="0.001126">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t9" name="Test Is Flow 8 Added" line="65">
<status status="FAIL" start="2026-10-15T02:56:07.874115" elapsed="0.001036">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t10" name="Test Is Flow 9 Added" line="67">
<status status="FAIL" start="2026-10-15T02:56:07.875530" elapsed="0.000611">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t11" name="Test Is Flow 10 Added" line="69">
<status status="FAIL" start="2026-10-15T02:56:07.876744" elapsed="0.001039">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t12" name="Test Is Flow 11 Added" line="71">
<status status="FAIL" start="2026-10-15T02:56:07.878648" elapsed="0.001063">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t13" name="Test Is Flow 14 Added" line="73">
<status status="FAIL" start="2026-10-15T02:56:07.880632" elapsed="0.000789">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t14" name="Test Is Flow 15 Added" line="75">
<status status="FAIL" start="2026-10-15T02:56:07.882515" elapsed="0.001440">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t15" name="Test Is Flow 16 Added" line="77">
<status status="FAIL" start="2026-10-15T02:56:07.885227" elapsed="0.000581">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t16" name="Test Is Flow 17 Added" line="79">
<status status="FAIL" start="2026-10-15T02:56:07.886159" elapsed="0.000905">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t17" name="Test Is Flow 18 Added" line="81">
<status status="FAIL" start="2026-10-15T02:56:07.887479" elapsed="0.001361">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t18" name="Test Is Flow 19 Added" line="83">
<status status="FAIL" start="2026-10-15T02:56:07.889920" elapsed="0.000484">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t19" name="Test Is Flow 20 Added" line="85">
<status status="FAIL" start="2026-10-15T02:56:07.890657" elapsed="0.000329">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t20" name="Test Is Flow 21 Added" line="87">
<status status="FAIL" start="2026-10-15T02:56:07.891229" elapsed="0.000649">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t21" name="Test Is Flow 22 Added" line="89">
<status status="FAIL" start="2026-10-15T02:56:07.892550" elapsed="0.001164">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t22" name="Test Is Flow 23 Added" line="91">
<status status="FAIL" start="2026-10-15T02:56:07.894437" elapsed="0.000697">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t23" name="Test Is Flow 24 Added" line="93">
<status status="FAIL" start="2026-10-15T02:56:07.895349" elapsed="0.000359">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t24" name="Test Is Flow 25 Added" line="95">
<status status="FAIL" start="2026-10-15T02:56:07.895926" elapsed="0.000357">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t25" name="Test Is Flow 31 Added" line="97">
<status status="FAIL" start="2026-10-15T02:56:07.896740" elapsed="0.000475">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t26" name="Test Is Flow 36 Added" line="99">
<status status="FAIL" start="2026-10-15T02:56:07.897874" elapsed="0.001151">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t27" name="Test Is Flow 38 Added" line="101">
<status status="FAIL" start="2026-10-15T02:56:07.899685" elapsed="0.000980">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t28" name="Test Is Flow 43 Added" line="103">
<status status="FAIL" start="2026-10-15T02:56:07.901066" elapsed="0.000856">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t29" name="Test Is Flow 45 Added" line="105">
<status status="FAIL" start="2026-10-15T02:56:07.903075" elapsed="0.000704">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t30" name="Test Is Flow 101 Added" line="107">
<status status="FAIL" start="2026-10-15T02:56:07.903987" elapsed="0.000349">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t31" name="Test Is Flow 102 Added" line="109">
<status status="FAIL" start="2026-10-15T02:56:07.904768" elapsed="0.000470">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t32" name="Test Is Flow 103 Added" line="111">
<status status="FAIL" start="2026-10-15T02:56:07.906143" elapsed="0.000450">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t33" name="Test Is Flow 104 Added" line="113">
<status status="FAIL" start="2026-10-15T02:56:07.906830" elapsed="0.000360">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t34" name="Test Is Flow 105 Added" line="115">
<status status="FAIL" start="2026-10-15T02:56:07.907407" elapsed="0.000737">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t35" name="Test Is Flow 106 Added" line="117">
<status status="FAIL" start="2026-10-15T02:56:07.908819" elapsed="0.001111">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t36" name="Test Is Flow 107 Added" line="119">
<status status="FAIL" start="2026-10-15T02:56:07.910741" elapsed="0.000467">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t37" name="Test Is Flow 108 Added" line="121">
<status status="FAIL" start="2026-10-15T02:56:07.911488" elapsed="0.000360">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t38" name="Test Is Flow 109 Added" line="123">
<status status="FAIL" start="2026-10-15T02:56:07.912068" elapsed="0.000330">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t39" name="Test Is Flow 110 Added" line="125">
<status status="FAIL" start="2026-10-15T02:56:07.913107" elapsed="0.000582">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t40" name="Test Is Flow 113 Added" line="127">
<status status="FAIL" start="2026-10-15T02:56:07.914721" elapsed="0.000876">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t41" name="Test Is Flow 156 Added" line="129">
<status status="FAIL" start="2026-10-15T02:56:07.916161" elapsed="0.000284">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t42" name="Test Is Flow 201 Added" line="131">
<status status="FAIL" start="2026-10-15T02:56:07.916625" elapsed="0.000260">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t43" name="Test Is Flow 202 Added" line="133">
<status status="FAIL" start="2026-10-15T02:56:07.917052" elapsed="0.000242">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t44" name="Test Is Flow 203 Added" line="135">
<status status="FAIL" start="2026-10-15T02:56:07.917435" elapsed="0.000548">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t45" name="Test Is Flow 204 Added" line="137">
<status status="FAIL" start="2026-10-15T02:56:07.918384" elapsed="0.000273">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t46" name="Test Is Flow 205 Added" line="139">
<status status="FAIL" start="2026-10-15T02:56:07.918802" elapsed="0.001073">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t47" name="Test Is Flow 206 Added" line="141">
<status status="FAIL" start="2026-10-15T02:56:07.920466" elapsed="0.000598">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t48" name="Test Is Flow 209 Added" line="143">
<status status="FAIL" start="2026-10-15T02:56:07.921783" elapsed="0.000341">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t49" name="Test Is Flow 214 Added" line="145">
<status status="FAIL" start="2026-10-15T02:56:07.922271" elapsed="0.000518">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t50" name="Test Is Flow 218 Added" line="147">
<status status="FAIL" start="2026-10-15T02:56:07.923389" elapsed="0.000761">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t51" name="Test Is Flow 219 Added" line="149">
<status status="FAIL" start="2026-10-15T02:56:07.924612" elapsed="0.000293">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t52" name="Test Is Flow 220 Added" line="151">
<status status="FAIL" start="2026-10-15T02:56:07.925088" elapsed="0.000282">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t53" name="Test Is Flow 221 Added" line="153">
<status status="FAIL" start="2026-10-15T02:56:07.925701" elapsed="0.000368">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t54" name="Test Is Flow 222 Added" line="155">
<status status="FAIL" start="2026-10-15T02:56:07.926564" elapsed="0.000666">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t55" name="Test Is Flow 223 Added" line="157">
<status status="FAIL" start="2026-10-15T02:56:07.927392" elapsed="0.000599">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t56" name="Test Is Flow 224 Added" line="159">
<status status="FAIL" start="2026-10-15T02:56:07.928467" elapsed="0.000613">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t57" name="Test Is Flow 225 Added" line="161">
<status status="FAIL" start="2026-10-15T02:56:07.929529" elapsed="0.000285">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t58" name="Test Is Flow 550 Added" line="163">
<status status="FAIL" start="2026-10-15T02:56:07.929991" elapsed="0.000253">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:07.930386" elapsed="0.000562">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t60" name="Test Is Flow 1 Updated" line="183">
<status status="FAIL" start="2026-10-15T02:56:07.931431" elapsed="0.000518">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t61" name="Test Is Flow 2 Updated" line="185">
<status status="FAIL" start="2026-10-15T02:56:07.933225" elapsed="0.000985">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t62" name="Test Is Flow 3 Updated" line="187">
<status status="FAIL" start="2026-10-15T02:56:07.934616" elapsed="0.000739">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t63" name="Test Is Flow 4 Updated" line="189">
<status status="FAIL" start="2026-10-15T02:56:07.935755" elapsed="0.000659">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t64" name="Test Is Flow 5 Updated" line="191">
<status status="FAIL" start="2026-10-15T02:56:07.936964" elapsed="0.000691">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t65" name="Test Is Flow 6 Updated" line="193">
<status status="FAIL" start="2026-10-15T02:56:07.938141" elapsed="0.000967">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t66" name="Test Is Flow 7 Updated" line="195">
<status status="FAIL" start="2026-10-15T02:56:07.939852" elapsed="0.001072">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t67" name="Test Is Flow 8 Updated" line="197">
<status status="FAIL" start="2026-10-15T02:56:07.941716" elapsed="0.000912">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t68" name="Test Is Flow 9 Updated" line="199">
<status status="FAIL" start="2026-10-15T02:56:07.943407" elapsed="0.000966">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t69" name="Test Is Flow 10 Updated" line="201">
<status status="FAIL" start="2026-10-15T02:56:07.945180" elapsed="0.000922">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t70" name="Test Is Flow 11 Updated" line="203">
<status status="FAIL" start="2026-10-15T02:56:07.946872" elapsed="0.000876">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t71" name="Test Is Flow 14 Updated" line="205">
<status status="FAIL" start="2026-10-15T02:56:07.948530" elapsed="0.000908">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t72" name="Test Is Flow 15 Updated" line="207">
<status status="FAIL" start="2026-10-15T02:56:07.950062" elapsed="0.000813">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t73" name="Test Is Flow 16 Updated" line="209">
<status status="FAIL" start="2026-10-15T02:56:07.951270" elapsed="0.000707">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t74" name="Test Is Flow 17 Updated" line="211">
<status status="FAIL" start="2026-10-15T02:56:07.952351" elapsed="0.000693">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t75" name="Test Is Flow 18 Updated" line="213">
<status status="FAIL" start="2026-10-15T02:56:07.953397" elapsed="0.000927">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t76" name="Test Is Flow 19 Updated" line="215">
<status status="FAIL" start="2026-10-15T02:56:07.955109" elapsed="0.000875">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t77" name="Test Is Flow 20 Updated" line="217">
<status status="FAIL" start="2026-10-15T02:56:07.956809" elapsed="0.000910">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t78" name="Test Is Flow 21 Updated" line="219">
<status status="FAIL" start="2026-10-15T02:56:07.958434" elapsed="0.000909">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t79" name="Test Is Flow 22 Updated" line="221">
<status status="FAIL" start="2026-10-15T02:56:07.960194" elapsed="0.000967">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t80" name="Test Is Flow 23 Updated" line="223">
<status status="FAIL" start="2026-10-15T02:56:07.961881" elapsed="0.001353">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t81" name="Test Is Flow 24 Updated" line="225">
<status status="FAIL" start="2026-10-15T02:56:07.964048" elapsed="0.000893">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t82" name="Test Is Flow 25 Updated" line="227">
<status status="FAIL" start="2026-10-15T02:56:07.965529" elapsed="0.000713">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t83" name="Test Is Flow 31 Updated" line="229">
<status status="FAIL" start="2026-10-15T02:56:07.966679" elapsed="0.000640">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t84" name="Test Is Flow 36 Updated" line="231">
<status status="FAIL" start="2026-10-15T02:56:07.967750" elapsed="0.000744">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t85" name="Test Is Flow 38 Updated" line="233">
<status status="FAIL" start="2026-10-15T02:56:07.968936" elapsed="0.000654">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t86" name="Test Is Flow 43 Updated" line="235">
<status status="FAIL" start="2026-10-15T02:56:07.970063" elapsed="0.000804">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t87" name="Test Is Flow 45 Updated" line="237">
<status status="FAIL" start="2026-10-15T02:56:07.971671" elapsed="0.000843">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t88" name="Test Is Flow 101 Updated" line="239">
<status status="FAIL" start="2026-10-15T02:56:07.973364" elapsed="0.000973">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t89" name="Test Is Flow 102 Updated" line="241">
<status status="FAIL" start="2026-10-15T02:56:07.975106" elapsed="0.000865">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t90" name="Test Is Flow 103 Updated" line="243">
<status status="FAIL" start="2026-10-15T02:56:07.976764" elapsed="0.000959">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t91" name="Test Is Flow 104 Updated" line="245">
<status status="FAIL" start="2026-10-15T02:56:07.978519" elapsed="0.000902">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t92" name="Test Is Flow 105 Updated" line="247">
<status status="FAIL" start="2026-10-15T02:56:07.980160" elapsed="0.001010">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t93" name="Test Is Flow 106 Updated" line="249">
<status status="FAIL" start="2026-10-15T02:56:07.981626" elapsed="0.000499">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t94" name="Test Is Flow 107 Updated" line="251">
<status status="FAIL" start="2026-10-15T02:56:07.982510" elapsed="0.000436">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t95" name="Test Is Flow 108 Updated" line="253">
<status status="FAIL" start="2026-10-15T02:56:07.983210" elapsed="0.000459">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t96" name="Test Is Flow 109 Updated" line="255">
<status status="FAIL" start="2026-10-15T02:56:07.984116" elapsed="0.000470">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t97" name="Test Is Flow 110 Updated" line="257">
<status status="FAIL" start="2026-10-15T02:56:07.985097" elapsed="0.000504">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t98" name="Test Is Flow 113 Updated" line="259">
<status status="FAIL" start="2026-10-15T02:56:07.986039" elapsed="0.000510">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t99" name="Test Is Flow 156 Updated" line="261">
<status status="FAIL" start="2026-10-15T02:56:07.986970" elapsed="0.000458">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t100" name="Test Is Flow 201 Updated" line="263">
<status status="FAIL" start="2026-10-15T02:56:07.987834" elapsed="0.000478">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t101" name="Test Is Flow 202 Updated" line="265">
<status status="FAIL" start="2026-10-15T02:56:07.988747" elapsed="0.000500">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t102" name="Test Is Flow 203 Updated" line="267">
<status status="FAIL" start="2026-10-15T02:56:07.989682" elapsed="0.000508">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t103" name="Test Is Flow 204 Updated" line="269">
<status status="FAIL" start="2026-10-15T02:56:07.990610" elapsed="0.000471">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t104" name="Test Is Flow 205 Updated" line="271">
<status status="FAIL" start="2026-10-15T02:56:07.991324" elapsed="0.000448">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t105" name="Test Is Flow 206 Updated" line="273">
<status status="FAIL" start="2026-10-15T02:56:07.992027" elapsed="0.000760">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t106" name="Test Is Flow 209 Updated" line="275">
<status status="FAIL" start="2026-10-15T02:56:07.993075" elapsed="0.000471">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t107" name="Test Is Flow 214 Updated" line="277">
<status status="FAIL" start="2026-10-15T02:56:07.993813" elapsed="0.000417">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t108" name="Test Is Flow 218 Updated" line="279">
<status status="FAIL" start="2026-10-15T02:56:07.994530" elapsed="0.000401">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t109" name="Test Is Flow 219 Updated" line="281">
<status status="FAIL" start="2026-10-15T02:56:07.995209" elapsed="0.000407">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t110" name="Test Is Flow 220 Updated" line="283">
<status status="FAIL" start="2026-10-15T02:56:07.995884" elapsed="0.000400">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t111" name="Test Is Flow 221 Updated" line="285">
<status status="FAIL" start="2026-10-15T02:56:07.996564" elapsed="0.000403">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t112" name="Test Is Flow 222 Updated" line="287">
<status status="FAIL" start="2026-10-15T02:56:07.997261" elapsed="0.000462">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t113" name="Test Is Flow 223 Updated" line="289">
<status status="FAIL" start="2026-10-15T02:56:07.997976" elapsed="0.000439">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t114" name="Test Is Flow 224 Updated" line="291">
<status status="FAIL" start="2026-10-15T02:56:07.998697" elapsed="0.000460">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t115" name="Test Is Flow 225 Updated" line="293">
<status status="FAIL" start="2026-10-15T02:56:07.999415" elapsed="0.000467">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t116" name="Test Is Flow 550 Updated" line="295">
<status status="FAIL" start="2026-10-15T02:56:08.000175" elapsed="0.000444">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:08.000870" elapsed="0.000606">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t118" name="Test Is Flow 1 Deleted" line="310">
<status status="FAIL" start="2026-10-15T02:56:08.001811" elapsed="0.000458">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t119" name="Test Is Flow 2 Deleted" line="312">
<status status="FAIL" start="2026-10-15T02:56:08.002590" elapsed="0.000398">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t120" name="Test Is Flow 3 Deleted" line="314">
<status status="FAIL" start="2026-10-15T02:56:08.003242" elapsed="0.000425">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t121" name="Test Is Flow 4 Deleted" line="316">
<status status="FAIL" start="2026-10-15T02:56:08.003967" elapsed="0.000421">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t122" name="Test Is Flow 5 Deleted" line="318">
<status status="FAIL" start="2026-10-15T02:56:08.004668" elapsed="0.000445">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t123" name="Test Is Flow 6 Deleted" line="320">
<status status="FAIL" start="2026-10-15T02:56:08.005395" elapsed="0.000482">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t124" name="Test Is Flow 7 Deleted" line="322">
<status status="FAIL" start="2026-10-15T02:56:08.006187" elapsed="0.000338">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t125" name="Test Is Flow 8 Deleted" line="324">
<status status="FAIL" start="2026-10-15T02:56:08.006704" elapsed="0.000309">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t126" name="Test Is Flow 9 Deleted" line="326">
<status status="FAIL" start="2026-10-15T02:56:08.007181" elapsed="0.000294">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t127" name="Test Is Flow 10 Deleted" line="328">
<status status="FAIL" start="2026-10-15T02:56:08.007645" elapsed="0.000307">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t128" name="Test Is Flow 11 Deleted" line="330">
<status status="FAIL" start="2026-10-15T02:56:08.008164" elapsed="0.000330">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t129" name="Test Is Flow 14 Deleted" line="332">
<status status="FAIL" start="2026-10-15T02:56:08.008674" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t130" name="Test Is Flow 15 Deleted" line="334">
<status status="FAIL" start="2026-10-15T02:56:08.009196" elapsed="0.000450">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t131" name="Test Is Flow 16 Deleted" line="336">
<status status="FAIL" start="2026-10-15T02:56:08.009848" elapsed="0.000335">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t132" name="Test Is Flow 17 Deleted" line="338">
<status status="FAIL" start="2026-10-15T02:56:08.010390" elapsed="0.000314">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t133" name="Test Is Flow 18 Deleted" line="340">
<status status="FAIL" start="2026-10-15T02:56:08.010887" elapsed="0.000321">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t134" name="Test Is Flow 19 Deleted" line="342">
<status status="FAIL" start="2026-10-15T02:56:08.011384" elapsed="0.000310">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t135" name="Test Is Flow 20 Deleted" line="344">
<status status="FAIL" start="2026-10-15T02:56:08.011876" elapsed="0.000302">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t136" name="Test Is Flow 21 Deleted" line="346">
<status status="FAIL" start="2026-10-15T02:56:08.012354" elapsed="0.000298">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t137" name="Test Is Flow 22 Deleted" line="348">
<status status="FAIL" start="2026-10-15T02:56:08.012828" elapsed="0.000279">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t138" name="Test Is Flow 23 Deleted" line="350">
<status status="FAIL" start="2026-10-15T02:56:08.013300" elapsed="0.000290">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t139" name="Test Is Flow 24 Deleted" line="352">
<status status="FAIL" start="2026-10-15T02:56:08.013735" elapsed="0.000238">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t140" name="Test Is Flow 25 Deleted" line="354">
<status status="FAIL" start="2026-10-15T02:56:08.014129" elapsed="0.000267">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t141" name="Test Is Flow 31 Deleted" line="356">
<status status="FAIL" start="2026-10-15T02:56:08.014598" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t142" name="Test Is Flow 36 Deleted" line="358">
<status status="FAIL" start="2026-10-15T02:56:08.015112" elapsed="0.000310">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t143" name="Test Is Flow 38 Deleted" line="360">
<status status="FAIL" start="2026-10-15T02:56:08.015621" elapsed="0.000320">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t144" name="Test Is Flow 43 Deleted" line="362">
<status status="FAIL" start="2026-10-15T02:56:08.016146" elapsed="0.000283">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t145" name="Test Is Flow 45 Deleted" line="364">
<status status="FAIL" start="2026-10-15T02:56:08.016631" elapsed="0.000296">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t146" name="Test Is Flow 101 Deleted" line="366">
<status status="FAIL" start="2026-10-15T02:56:08.017126" elapsed="0.000313">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t147" name="Test Is Flow 102 Deleted" line="368">
<status status="FAIL" start="2026-10-15T02:56:08.017645" elapsed="0.000315">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t148" name="Test Is Flow 103 Deleted" line="370">
<status status="FAIL" start="2026-10-15T02:56:08.018153" elapsed="0.000308">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t149" name="Test Is Flow 104 Deleted" line="372">
<status status="FAIL" start="2026-10-15T02:56:08.018634" elapsed="0.000272">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t150" name="Test Is Flow 105 Deleted" line="374">
<status status="FAIL" start="2026-10-15T02:56:08.019092" elapsed="0.000353">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t151" name="Test Is Flow 106 Deleted" line="376">
<status status="FAIL" start="2026-10-15T02:56:08.019648" elapsed="0.000304">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t152" name="Test Is Flow 107 Deleted" line="378">
<status status="FAIL" start="2026-10-15T02:56:08.020151" elapsed="0.000319">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t153" name="Test Is Flow 108 Deleted" line="380">
<status status="FAIL" start="2026-10-15T02:56:08.020644" elapsed="0.000314">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t154" name="Test Is Flow 109 Deleted" line="382">
<status status="FAIL" start="2026-10-15T02:56:08.021181" elapsed="0.000301">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t155" name="Test Is Flow 110 Deleted" line="384">
<status status="FAIL" start="2026-10-15T02:56:08.021687" elapsed="0.000480">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t156" name="Test Is Flow 113 Deleted" line="386">
<status status="FAIL" start="2026-10-15T02:56:08.022347" elapsed="0.000325">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t157" name="Test Is Flow 156 Deleted" line="388">
<status status="FAIL" start="2026-10-15T02:56:08.022846" elapsed="0.000315">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t158" name="Test Is Flow 201 Deleted" line="390">
<status status="FAIL" start="2026-10-15T02:56:08.023338" elapsed="0.000295">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t159" name="Test Is Flow 202 Deleted" line="392">
<status status="FAIL" start="2026-10-15T02:56:08.023837" elapsed="0.000282">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t160" name="Test Is Flow 203 Deleted" line="394">
<status status="FAIL" start="2026-10-15T02:56:08.024290" elapsed="0.000277">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t161" name="Test Is Flow 204 Deleted" line="396">
<status status="FAIL" start="2026-10-15T02:56:08.024755" elapsed="0.000308">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t162" name="Test Is Flow 205 Deleted" line="398">
<status status="FAIL" start="2026-10-15T02:56:08.025257" elapsed="0.000332">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t163" name="Test Is Flow 206 Deleted" line="400">
<status status="FAIL" start="2026-10-15T02:56:08.025773" elapsed="0.000325">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t164" name="Test Is Flow 209 Deleted" line="402">
<status status="FAIL" start="2026-10-15T02:56:08.026271" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t165" name="Test Is Flow 214 Deleted" line="404">
<status status="FAIL" start="2026-10-15T02:56:08.026778" elapsed="0.000329">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t166" name="Test Is Flow 218 Deleted" line="406">
<status status="FAIL" start="2026-10-15T02:56:08.027290" elapsed="0.000321">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t167" name="Test Is Flow 219 Deleted" line="408">
<status status="FAIL" start="2026-10-15T02:56:08.027800" elapsed="0.000318">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t168" name="Test Is Flow 220 Deleted" line="410">
<status status="FAIL" start="2026-10-15T02:56:08.028297" elapsed="0.000301">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t169" name="Test Is Flow 221 Deleted" line="412">
<status status="FAIL" start="2026-10-15T02:56:08.028790" elapsed="0.000309">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t170" name="Test Is Flow 222 Deleted" line="414">
<status status="FAIL" start="2026-10-15T02:56:08.029311" elapsed="0.000297">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t171" name="Test Is Flow 223 Deleted" line="416">
<status status="FAIL" start="2026-10-15T02:56:08.029800" elapsed="0.000307">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t172" name="Test Is Flow 224 Deleted" line="418">
<status status="FAIL" start="2026-10-15T02:56:08.030312" elapsed="0.000355">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t173" name="Test Is Flow 225 Deleted" line="420">
<status status="FAIL" start="2026-10-15T02:56:08.030858" elapsed="0.000338">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s1-t174" name="Test Is Flow 550 Deleted" line="422">
<status status="FAIL" start="2026-10-15T02:56:08.031386" elapsed="0.000304">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:56:08.032817" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:56:08.032654" elapsed="0.000250"/>
</kw>
<doc>Test suite for Stats Manager flows collection</doc>
<status status="FAIL" start="2026-10-15T02:55:58.618481" elapsed="9.414471">Suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</suite>
<suite id="s1-s3-s2" name="020 SM sal add upd del flows" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:08.050102" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77748043f2d0&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-10-15T02:56:08.049801" elapsed="0.000466"/>
</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-10-15T02:56:08.057163" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:08.057222" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:08.057330" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:08.051583" elapsed="0.006185">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:08.058036" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:08.058210" elapsed="0.000018"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:08.058370" elapsed="0.000018"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:08.051466" elapsed="0.006974">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:08.051227" elapsed="0.007285">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:08.051073" elapsed="0.007533">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:09.064687" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:09.064765" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:09.064912" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:09.060104" elapsed="0.005419">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:09.065847" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:09.066110" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:09.066343" elapsed="0.000035"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:09.059910" elapsed="0.006560">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:09.059605" elapsed="0.006941">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:09.059247" elapsed="0.007423">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:10.075335" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:10.075533" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:10.075911" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:10.068753" elapsed="0.008094">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:10.077529" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:10.077918" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:10.078298" elapsed="0.000041"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:10.068490" elapsed="0.009988">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:10.067978" elapsed="0.010625">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:10.067528" elapsed="0.011282">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:11.086844" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:11.086967" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:11.087209" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:11.080961" elapsed="0.007152">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:11.088764" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:11.089183" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:11.089578" elapsed="0.000043"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:11.080698" elapsed="0.009033">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:11.080181" elapsed="0.009668">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:11.079689" elapsed="0.010382">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:12.099241" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:12.099383" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:12.099769" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:12.092666" elapsed="0.008042">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:12.101272" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:12.101735" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:12.102144" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:12.092246" elapsed="0.010058">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:12.091584" elapsed="0.010857">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:12.090995" elapsed="0.011699">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:13.111054" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:13.111212" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:13.111534" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:13.104825" elapsed="0.007936">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:13.113527" elapsed="0.000068"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:13.114064" elapsed="0.000079"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:13.114586" elapsed="0.000052"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:13.104565" elapsed="0.010189">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:13.104066" elapsed="0.010809">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:13.103570" elapsed="0.011628">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:14.124051" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:14.124180" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:14.124441" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:14.118054" elapsed="0.007326">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:14.125949" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:14.126503" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:14.126894" elapsed="0.000045"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:14.117772" elapsed="0.009303">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:14.117276" elapsed="0.009923">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:14.116168" elapsed="0.011231">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:15.136004" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:15.136163" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:15.136424" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:15.129779" elapsed="0.007653">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:15.138103" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:15.138576" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:15.138967" elapsed="0.000066"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:15.129385" elapsed="0.009802">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:15.128871" elapsed="0.010482">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:15.128314" elapsed="0.011368">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:16.147838" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:16.147959" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:16.148211" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:16.141977" elapsed="0.007190">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:16.149720" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:16.150148" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:16.150579" elapsed="0.000048"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:16.141702" elapsed="0.009041">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:16.141146" elapsed="0.009812">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:16.140657" elapsed="0.010572">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:17.159979" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/xml', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:17.160129" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:17.161855" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:17.153622" elapsed="0.009299">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.163524" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.164038" elapsed="0.000073"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.164534" elapsed="0.000049"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:17.153253" elapsed="0.011445">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:17.152729" elapsed="0.012088">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-10-15T02:56:17.152180" elapsed="0.012829">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:56:17.165207" level="FAIL">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:08.050534" elapsed="9.114863">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:17.165784" elapsed="0.000046"/>
</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-10-15T02:56:17.166156" elapsed="0.000043"/>
</kw>
<doc>Initiate tcp connection with controller</doc>
<status status="FAIL" start="2026-10-15T02:56:08.049515" elapsed="9.116852">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:17.166532" elapsed="0.000786">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t2" name="Test Is Flow 1 Added" line="50">
<status status="FAIL" start="2026-10-15T02:56:17.167759" elapsed="0.000574">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t3" name="Test Is Flow 2 Added" line="52">
<status status="FAIL" start="2026-10-15T02:56:17.168701" elapsed="0.000689">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t4" name="Test Is Flow 3 Added" line="54">
<status status="FAIL" start="2026-10-15T02:56:17.169764" elapsed="0.000557">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t5" name="Test Is Flow 4 Added" line="56">
<status status="FAIL" start="2026-10-15T02:56:17.170679" elapsed="0.001045">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t6" name="Test Is Flow 5 Added" line="58">
<status status="FAIL" start="2026-10-15T02:56:17.172372" elapsed="0.000845">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t7" name="Test Is Flow 6 Added" line="60">
<status status="FAIL" start="2026-10-15T02:56:17.173713" elapsed="0.000583">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t8" name="Test Is Flow 7 Added" line="62">
<status status="FAIL" start="2026-10-15T02:56:17.174670" elapsed="0.000573">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t9" name="Test Is Flow 8 Added" line="64">
<status status="FAIL" start="2026-10-15T02:56:17.175612" elapsed="0.000564">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t10" name="Test Is Flow 9 Added" line="66">
<status status="FAIL" start="2026-10-15T02:56:17.176540" elapsed="0.000566">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t11" name="Test Is Flow 10 Added" line="68">
<status status="FAIL" start="2026-10-15T02:56:17.177439" elapsed="0.000597">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t12" name="Test Is Flow 11 Added" line="70">
<status status="FAIL" start="2026-10-15T02:56:17.178386" elapsed="0.000576">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t13" name="Test Is Flow 15 Added" line="72">
<status status="FAIL" start="2026-10-15T02:56:17.179320" elapsed="0.000570">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t14" name="Test Is Flow 16 Added" line="74">
<status status="FAIL" start="2026-10-15T02:56:17.180241" elapsed="0.000576">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t15" name="Test Is Flow 17 Added" line="76">
<status status="FAIL" start="2026-10-15T02:56:17.181172" elapsed="0.000566">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t16" name="Test Is Flow 18 Added" line="78">
<status status="FAIL" start="2026-10-15T02:56:17.182084" elapsed="0.000562">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t17" name="Test Is Flow 19 Added" line="80">
<status status="FAIL" start="2026-10-15T02:56:17.182973" elapsed="0.000587">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t18" name="Test Is Flow 20 Added" line="82">
<status status="FAIL" start="2026-10-15T02:56:17.183889" elapsed="0.000556">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t19" name="Test Is Flow 21 Added" line="84">
<status status="FAIL" start="2026-10-15T02:56:17.184803" elapsed="0.000575">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t20" name="Test Is Flow 22 Added" line="86">
<status status="FAIL" start="2026-10-15T02:56:17.185743" elapsed="0.000551">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t21" name="Test Is Flow 23 Added" line="88">
<status status="FAIL" start="2026-10-15T02:56:17.186652" elapsed="0.000554">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t22" name="Test Is Flow 24 Added" line="90">
<status status="FAIL" start="2026-10-15T02:56:17.187563" elapsed="0.000658">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t23" name="Test Is Flow 25 Added" line="92">
<status status="FAIL" start="2026-10-15T02:56:17.188677" elapsed="0.000716">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t24" name="Test Is Flow 31 Added" line="94">
<status status="FAIL" start="2026-10-15T02:56:17.189827" elapsed="0.001238">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t25" name="Test Is Flow 36 Added" line="96">
<status status="FAIL" start="2026-10-15T02:56:17.191527" elapsed="0.000662">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t26" name="Test Is Flow 38 Added" line="98">
<status status="FAIL" start="2026-10-15T02:56:17.192592" elapsed="0.000623">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t27" name="Test Is Flow 43 Added" line="100">
<status status="FAIL" start="2026-10-15T02:56:17.193583" elapsed="0.000558">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t28" name="Test Is Flow 45 Added" line="102">
<status status="FAIL" start="2026-10-15T02:56:17.194556" elapsed="0.000602">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t29" name="Test Is Flow 101 Added" line="104">
<status status="FAIL" start="2026-10-15T02:56:17.195544" elapsed="0.000595">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t30" name="Test Is Flow 102 Added" line="106">
<status status="FAIL" start="2026-10-15T02:56:17.196523" elapsed="0.000597">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t31" name="Test Is Flow 103 Added" line="108">
<status status="FAIL" start="2026-10-15T02:56:17.197503" elapsed="0.000598">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t32" name="Test Is Flow 104 Added" line="110">
<status status="FAIL" start="2026-10-15T02:56:17.198485" elapsed="0.000593">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t33" name="Test Is Flow 105 Added" line="112">
<status status="FAIL" start="2026-10-15T02:56:17.199428" elapsed="0.000647">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t34" name="Test Is Flow 106 Added" line="114">
<status status="FAIL" start="2026-10-15T02:56:17.200427" elapsed="0.000629">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t35" name="Test Is Flow 107 Added" line="116">
<status status="FAIL" start="2026-10-15T02:56:17.201442" elapsed="0.000408">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t36" name="Test Is Flow 108 Added" line="118">
<status status="FAIL" start="2026-10-15T02:56:17.202070" elapsed="0.000333">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t37" name="Test Is Flow 109 Added" line="120">
<status status="FAIL" start="2026-10-15T02:56:17.202697" elapsed="0.000355">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t38" name="Test Is Flow 110 Added" line="122">
<status status="FAIL" start="2026-10-15T02:56:17.203257" elapsed="0.000356">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t39" name="Test Is Flow 113 Added" line="124">
<status status="FAIL" start="2026-10-15T02:56:17.203820" elapsed="0.000357">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t40" name="Test Is Flow 201 Added" line="126">
<status status="FAIL" start="2026-10-15T02:56:17.204381" elapsed="0.000358">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t41" name="Test Is Flow 202 Added" line="128">
<status status="FAIL" start="2026-10-15T02:56:17.204937" elapsed="0.000347">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t42" name="Test Is Flow 203 Added" line="130">
<status status="FAIL" start="2026-10-15T02:56:17.205508" elapsed="0.000329">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t43" name="Test Is Flow 204 Added" line="132">
<status status="FAIL" start="2026-10-15T02:56:17.206056" elapsed="0.000340">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t44" name="Test Is Flow 205 Added" line="134">
<status status="FAIL" start="2026-10-15T02:56:17.206618" elapsed="0.000336">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t45" name="Test Is Flow 206 Added" line="136">
<status status="FAIL" start="2026-10-15T02:56:17.207175" elapsed="0.000353">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t46" name="Test Is Flow 209 Added" line="138">
<status status="FAIL" start="2026-10-15T02:56:17.207739" elapsed="0.000361">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t47" name="Test Is Flow 214 Added" line="140">
<status status="FAIL" start="2026-10-15T02:56:17.208301" elapsed="0.000380">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t48" name="Test Is Flow 218 Added" line="142">
<status status="FAIL" start="2026-10-15T02:56:17.208887" elapsed="0.000361">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t49" name="Test Is Flow 219 Added" line="144">
<status status="FAIL" start="2026-10-15T02:56:17.209500" elapsed="0.000335">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t50" name="Test Is Flow 220 Added" line="146">
<status status="FAIL" start="2026-10-15T02:56:17.210084" elapsed="0.000592">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:17.210886" elapsed="0.000433">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t52" name="Test Is Flow 1 Updated" line="161">
<status status="FAIL" start="2026-10-15T02:56:17.211555" elapsed="0.000386">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t53" name="Test Is Flow 2 Updated" line="163">
<status status="FAIL" start="2026-10-15T02:56:17.212203" elapsed="0.000382">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t54" name="Test Is Flow 3 Updated" line="165">
<status status="FAIL" start="2026-10-15T02:56:17.212802" elapsed="0.000369">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t55" name="Test Is Flow 4 Updated" line="167">
<status status="FAIL" start="2026-10-15T02:56:17.213387" elapsed="0.000375">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t56" name="Test Is Flow 5 Updated" line="169">
<status status="FAIL" start="2026-10-15T02:56:17.213971" elapsed="0.000368">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t57" name="Test Is Flow 6 Updated" line="171">
<status status="FAIL" start="2026-10-15T02:56:17.214571" elapsed="0.000344">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t58" name="Test Is Flow 7 Updated" line="173">
<status status="FAIL" start="2026-10-15T02:56:17.215143" elapsed="0.000380">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t59" name="Test Is Flow 8 Updated" line="175">
<status status="FAIL" start="2026-10-15T02:56:17.215741" elapsed="0.000375">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t60" name="Test Is Flow 9 Updated" line="177">
<status status="FAIL" start="2026-10-15T02:56:17.216326" elapsed="0.000459">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t61" name="Test Is Flow 10 Updated" line="179">
<status status="FAIL" start="2026-10-15T02:56:17.216997" elapsed="0.000378">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t62" name="Test Is Flow 11 Updated" line="181">
<status status="FAIL" start="2026-10-15T02:56:17.217610" elapsed="0.000351">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t63" name="Test Is Flow 14 Updated" line="183">
<status status="FAIL" start="2026-10-15T02:56:17.218196" elapsed="0.000370">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t64" name="Test Is Flow 15 Updated" line="185">
<status status="FAIL" start="2026-10-15T02:56:17.218792" elapsed="0.000371">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t65" name="Test Is Flow 16 Updated" line="187">
<status status="FAIL" start="2026-10-15T02:56:17.219387" elapsed="0.000376">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t66" name="Test Is Flow 17 Updated" line="189">
<status status="FAIL" start="2026-10-15T02:56:17.219978" elapsed="0.000368">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t67" name="Test Is Flow 18 Updated" line="191">
<status status="FAIL" start="2026-10-15T02:56:17.220589" elapsed="0.000387">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t68" name="Test Is Flow 19 Updated" line="193">
<status status="FAIL" start="2026-10-15T02:56:17.221209" elapsed="0.000375">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t69" name="Test Is Flow 20 Updated" line="195">
<status status="FAIL" start="2026-10-15T02:56:17.221801" elapsed="0.000377">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t70" name="Test Is Flow 21 Updated" line="197">
<status status="FAIL" start="2026-10-15T02:56:17.222430" elapsed="0.000378">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t71" name="Test Is Flow 22 Updated" line="199">
<status status="FAIL" start="2026-10-15T02:56:17.223033" elapsed="0.000361">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t72" name="Test Is Flow 23 Updated" line="201">
<status status="FAIL" start="2026-10-15T02:56:17.223632" elapsed="0.000359">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t73" name="Test Is Flow 24 Updated" line="203">
<status status="FAIL" start="2026-10-15T02:56:17.224225" elapsed="0.000376">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t74" name="Test Is Flow 25 Updated" line="205">
<status status="FAIL" start="2026-10-15T02:56:17.224816" elapsed="0.000381">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t75" name="Test Is Flow 31 Updated" line="207">
<status status="FAIL" start="2026-10-15T02:56:17.225412" elapsed="0.000576">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t76" name="Test Is Flow 36 Updated" line="209">
<status status="FAIL" start="2026-10-15T02:56:17.226218" elapsed="0.000374">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t77" name="Test Is Flow 38 Updated" line="211">
<status status="FAIL" start="2026-10-15T02:56:17.226808" elapsed="0.000370">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t78" name="Test Is Flow 43 Updated" line="213">
<status status="FAIL" start="2026-10-15T02:56:17.227401" elapsed="0.000305">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t79" name="Test Is Flow 45 Updated" line="215">
<status status="FAIL" start="2026-10-15T02:56:17.227852" elapsed="0.000254">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t80" name="Test Is Flow 101 Updated" line="217">
<status status="FAIL" start="2026-10-15T02:56:17.228253" elapsed="0.000253">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t81" name="Test Is Flow 102 Updated" line="219">
<status status="FAIL" start="2026-10-15T02:56:17.228653" elapsed="0.000238">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t82" name="Test Is Flow 103 Updated" line="221">
<status status="FAIL" start="2026-10-15T02:56:17.229047" elapsed="0.000246">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t83" name="Test Is Flow 104 Updated" line="223">
<status status="FAIL" start="2026-10-15T02:56:17.229439" elapsed="0.000262">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t84" name="Test Is Flow 105 Updated" line="225">
<status status="FAIL" start="2026-10-15T02:56:17.229847" elapsed="0.000257">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t85" name="Test Is Flow 106 Updated" line="227">
<status status="FAIL" start="2026-10-15T02:56:17.230247" elapsed="0.000255">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t86" name="Test Is Flow 107 Updated" line="229">
<status status="FAIL" start="2026-10-15T02:56:17.230648" elapsed="0.000240">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t87" name="Test Is Flow 108 Updated" line="231">
<status status="FAIL" start="2026-10-15T02:56:17.231040" elapsed="0.000252">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t88" name="Test Is Flow 109 Updated" line="233">
<status status="FAIL" start="2026-10-15T02:56:17.231439" elapsed="0.000260">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t89" name="Test Is Flow 110 Updated" line="235">
<status status="FAIL" start="2026-10-15T02:56:17.231840" elapsed="0.000251">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t90" name="Test Is Flow 113 Updated" line="237">
<status status="FAIL" start="2026-10-15T02:56:17.232258" elapsed="0.000256">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t91" name="Test Is Flow 201 Updated" line="239">
<status status="FAIL" start="2026-10-15T02:56:17.232661" elapsed="0.000245">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t92" name="Test Is Flow 202 Updated" line="241">
<status status="FAIL" start="2026-10-15T02:56:17.233075" elapsed="0.000238">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t93" name="Test Is Flow 203 Updated" line="243">
<status status="FAIL" start="2026-10-15T02:56:17.233473" elapsed="0.000240">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t94" name="Test Is Flow 204 Updated" line="245">
<status status="FAIL" start="2026-10-15T02:56:17.233857" elapsed="0.000258">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t95" name="Test Is Flow 205 Updated" line="247">
<status status="FAIL" start="2026-10-15T02:56:17.234267" elapsed="0.000266">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t96" name="Test Is Flow 206 Updated" line="249">
<status status="FAIL" start="2026-10-15T02:56:17.234679" elapsed="0.000238">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t97" name="Test Is Flow 209 Updated" line="251">
<status status="FAIL" start="2026-10-15T02:56:17.235078" elapsed="0.000248">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t98" name="Test Is Flow 214 Updated" line="253">
<status status="FAIL" start="2026-10-15T02:56:17.235483" elapsed="0.000246">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t99" name="Test Is Flow 218 Updated" line="255">
<status status="FAIL" start="2026-10-15T02:56:17.235874" elapsed="0.000251">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t100" name="Test Is Flow 219 Updated" line="257">
<status status="FAIL" start="2026-10-15T02:56:17.236269" elapsed="0.000392">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t101" name="Test Is Flow 220 Updated" line="259">
<status status="FAIL" start="2026-10-15T02:56:17.236807" elapsed="0.000254">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</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-10-15T02:56:17.237226" elapsed="0.000313">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t103" name="Test Is Flow 1 Deleted" line="274">
<status status="FAIL" start="2026-10-15T02:56:17.237695" elapsed="0.000237">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t104" name="Test Is Flow 2 Deleted" line="276">
<status status="FAIL" start="2026-10-15T02:56:17.238111" elapsed="0.000254">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t105" name="Test Is Flow 3 Deleted" line="278">
<status status="FAIL" start="2026-10-15T02:56:17.238551" elapsed="0.000279">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t106" name="Test Is Flow 4 Deleted" line="280">
<status status="FAIL" start="2026-10-15T02:56:17.239004" elapsed="0.000307">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t107" name="Test Is Flow 5 Deleted" line="282">
<status status="FAIL" start="2026-10-15T02:56:17.239495" elapsed="0.000259">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t108" name="Test Is Flow 6 Deleted" line="284">
<status status="FAIL" start="2026-10-15T02:56:17.239918" elapsed="0.000289">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t109" name="Test Is Flow 7 Deleted" line="286">
<status status="FAIL" start="2026-10-15T02:56:17.240386" elapsed="0.000302">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t110" name="Test Is Flow 8 Deleted" line="288">
<status status="FAIL" start="2026-10-15T02:56:17.240858" elapsed="0.000277">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t111" name="Test Is Flow 9 Deleted" line="290">
<status status="FAIL" start="2026-10-15T02:56:17.241328" elapsed="0.000282">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t112" name="Test Is Flow 10 Deleted" line="292">
<status status="FAIL" start="2026-10-15T02:56:17.241774" elapsed="0.000290">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t113" name="Test Is Flow 11 Deleted" line="294">
<status status="FAIL" start="2026-10-15T02:56:17.242242" elapsed="0.000284">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t114" name="Test Is Flow 14 Deleted" line="296">
<status status="FAIL" start="2026-10-15T02:56:17.242692" elapsed="0.000245">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t115" name="Test Is Flow 15 Deleted" line="298">
<status status="FAIL" start="2026-10-15T02:56:17.243133" elapsed="0.000274">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t116" name="Test Is Flow 16 Deleted" line="300">
<status status="FAIL" start="2026-10-15T02:56:17.243599" elapsed="0.000290">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t117" name="Test Is Flow 17 Deleted" line="302">
<status status="FAIL" start="2026-10-15T02:56:17.244074" elapsed="0.000258">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t118" name="Test Is Flow 18 Deleted" line="304">
<status status="FAIL" start="2026-10-15T02:56:17.244526" elapsed="0.000275">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t119" name="Test Is Flow 19 Deleted" line="306">
<status status="FAIL" start="2026-10-15T02:56:17.244963" elapsed="0.000307">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t120" name="Test Is Flow 20 Deleted" line="308">
<status status="FAIL" start="2026-10-15T02:56:17.245463" elapsed="0.000275">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t121" name="Test Is Flow 21 Deleted" line="310">
<status status="FAIL" start="2026-10-15T02:56:17.245914" elapsed="0.000318">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t122" name="Test Is Flow 22 Deleted" line="312">
<status status="FAIL" start="2026-10-15T02:56:17.246412" elapsed="0.000277">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t123" name="Test Is Flow 23 Deleted" line="314">
<status status="FAIL" start="2026-10-15T02:56:17.246859" elapsed="0.000319">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t124" name="Test Is Flow 24 Deleted" line="316">
<status status="FAIL" start="2026-10-15T02:56:17.247350" elapsed="0.000291">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t125" name="Test Is Flow 25 Deleted" line="318">
<status status="FAIL" start="2026-10-15T02:56:17.247788" elapsed="0.000398">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t126" name="Test Is Flow 31 Deleted" line="320">
<status status="FAIL" start="2026-10-15T02:56:17.248333" elapsed="0.000260">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t127" name="Test Is Flow 36 Deleted" line="322">
<status status="FAIL" start="2026-10-15T02:56:17.248749" elapsed="0.000278">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t128" name="Test Is Flow 38 Deleted" line="324">
<status status="FAIL" start="2026-10-15T02:56:17.249175" elapsed="0.000239">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t129" name="Test Is Flow 43 Deleted" line="326">
<status status="FAIL" start="2026-10-15T02:56:17.249579" elapsed="0.000238">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t130" name="Test Is Flow 45 Deleted" line="328">
<status status="FAIL" start="2026-10-15T02:56:17.249963" elapsed="0.000249">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t131" name="Test Is Flow 101 Deleted" line="330">
<status status="FAIL" start="2026-10-15T02:56:17.250384" elapsed="0.000259">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t132" name="Test Is Flow 102 Deleted" line="332">
<status status="FAIL" start="2026-10-15T02:56:17.250789" elapsed="0.000258">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t133" name="Test Is Flow 103 Deleted" line="334">
<status status="FAIL" start="2026-10-15T02:56:17.251194" elapsed="0.000238">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t134" name="Test Is Flow 104 Deleted" line="336">
<status status="FAIL" start="2026-10-15T02:56:17.251597" elapsed="0.000238">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t135" name="Test Is Flow 105 Deleted" line="338">
<status status="FAIL" start="2026-10-15T02:56:17.251982" elapsed="0.000264">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t136" name="Test Is Flow 106 Deleted" line="340">
<status status="FAIL" start="2026-10-15T02:56:17.252393" elapsed="0.000256">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t137" name="Test Is Flow 107 Deleted" line="342">
<status status="FAIL" start="2026-10-15T02:56:17.252795" elapsed="0.000251">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t138" name="Test Is Flow 108 Deleted" line="344">
<status status="FAIL" start="2026-10-15T02:56:17.253193" elapsed="0.000237">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t139" name="Test Is Flow 109 Deleted" line="346">
<status status="FAIL" start="2026-10-15T02:56:17.253592" elapsed="0.000238">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t140" name="Test Is Flow 110 Deleted" line="348">
<status status="FAIL" start="2026-10-15T02:56:17.253974" elapsed="0.000257">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t141" name="Test Is Flow 113 Deleted" line="350">
<status status="FAIL" start="2026-10-15T02:56:17.254376" elapsed="0.000255">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t142" name="Test Is Flow 201 Deleted" line="352">
<status status="FAIL" start="2026-10-15T02:56:17.254776" elapsed="0.000249">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t143" name="Test Is Flow 202 Deleted" line="354">
<status status="FAIL" start="2026-10-15T02:56:17.255171" elapsed="0.000236">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t144" name="Test Is Flow 203 Deleted" line="356">
<status status="FAIL" start="2026-10-15T02:56:17.255568" elapsed="0.000245">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t145" name="Test Is Flow 204 Deleted" line="358">
<status status="FAIL" start="2026-10-15T02:56:17.255963" elapsed="0.000251">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t146" name="Test Is Flow 205 Deleted" line="360">
<status status="FAIL" start="2026-10-15T02:56:17.256359" elapsed="0.000260">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t147" name="Test Is Flow 206 Deleted" line="362">
<status status="FAIL" start="2026-10-15T02:56:17.256765" elapsed="0.000243">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t148" name="Test Is Flow 209 Deleted" line="364">
<status status="FAIL" start="2026-10-15T02:56:17.257165" elapsed="0.000244">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t149" name="Test Is Flow 214 Deleted" line="366">
<status status="FAIL" start="2026-10-15T02:56:17.257579" elapsed="0.000250">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t150" name="Test Is Flow 218 Deleted" line="368">
<status status="FAIL" start="2026-10-15T02:56:17.257970" elapsed="0.000392">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t151" name="Test Is Flow 219 Deleted" line="370">
<status status="FAIL" start="2026-10-15T02:56:17.258536" elapsed="0.000242">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<test id="s1-s3-s2-t152" name="Test Is Flow 220 Deleted" line="372">
<status status="FAIL" start="2026-10-15T02:56:17.258949" elapsed="0.000262">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-10-15T02:56:17.260109" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T02:56:17.259955" elapsed="0.000232"/>
</kw>
<doc>Test suite for Stats Manager flows collection</doc>
<status status="FAIL" start="2026-10-15T02:56:08.034172" elapsed="9.226053">Suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 Expected status: 404 != 200</status>
</suite>
<kw name="Stop Mininet" owner="Utils" type="TEARDOWN">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.262704" 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-10-15T02:56:17.262404" elapsed="0.000342"/>
</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-10-15T02:56:17.262890" elapsed="0.000117"/>
</kw>
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-10-15T02:56:17.263151" elapsed="0.000136"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:56:17.268062" 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-10-15T02:56:17.263413" elapsed="0.004707"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:56:17.380982" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 2 links
..
*** Stopping 1 switches
s1 
*** Stopping 2 hosts
h1 h2 
*** Done
completed in 18.871 seconds
[?2004h[jenkins@releng-38703-72-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-10-15T02:56:17.268280" elapsed="0.112783"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:56:17.381202" elapsed="0.000159"/>
</kw>
<doc>Cleanup/Shutdown work that should be done at the completion of all
tests</doc>
<status status="PASS" start="2026-10-15T02:56:17.262092" elapsed="0.119323"/>
</kw>
<doc>Test suite for the OpenDaylight OpenFlow statistics manager</doc>
<status status="FAIL" start="2026-10-15T02:55:55.623756" elapsed="21.757688"/>
</suite>
<suite id="s1-s4" name="Reconciliation" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation">
<suite id="s1-s4-s1" name="010 Group Flows" source="/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.541287" 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-10-15T02:56:17.539924" elapsed="0.001394"/>
</kw>
<if>
<branch type="IF" condition="${already_done}">
<return>
<status status="NOT RUN" start="2026-10-15T02:56:17.541522" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:56:17.541411" elapsed="0.000157"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.541386" elapsed="0.000203"/>
</if>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.542083" level="INFO">${ClusterManagement__has_setup_run} = True</msg>
<arg>\${ClusterManagement__has_setup_run}</arg>
<arg>True</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.541764" elapsed="0.000359"/>
</kw>
<kw name="Get Variable Value" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.542574" 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-10-15T02:56:17.542282" elapsed="0.000316"/>
</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-10-15T02:56:17.543104" elapsed="0.000249"/>
</kw>
<msg time="2026-10-15T02:56:17.543445" level="INFO">${status} = PASS</msg>
<msg time="2026-10-15T02:56:17.543510" 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 errorw.</doc>
<status status="PASS" start="2026-10-15T02:56:17.542756" elapsed="0.000775"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.544091" 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-10-15T02:56:17.543703" elapsed="0.000413"/>
</kw>
<kw name="ClusterManagement__Compute_Derived_Variables" owner="ClusterManagement">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.545193" level="INFO">@{member_index_list} = [ ]</msg>
<var>@{member_index_list}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:56:17.544921" elapsed="0.000299"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.545780" level="INFO">@{session_list} = [ ]</msg>
<var>@{session_list}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:56:17.545362" elapsed="0.000443"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.546262" 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-10-15T02:56:17.545978" elapsed="0.000309"/>
</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-10-15T02:56:17.547151" elapsed="0.000188"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.547788" level="INFO">${member_ip} = 10.30.171.74</msg>
<var>${member_ip}</var>
<arg>${ODL_SYSTEM_${index}_IP}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.547510" elapsed="0.000302"/>
</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-10-15T02:56:17.547972" elapsed="0.000250"/>
</kw>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.549031" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.548731" elapsed="0.000334"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T02:56:17.549118" elapsed="0.000038"/>
</return>
<msg time="2026-10-15T02:56:17.549271" 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-10-15T02:56:17.548434" elapsed="0.000864"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:17.549820" level="INFO">Creating Session using : alias=ClusterManagement__session_1, url=http://10.30.171.74:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7774804b3650&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-10-15T02:56:17.549498" elapsed="0.000477"/>
</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-10-15T02:56:17.550183" elapsed="0.000167"/>
</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-10-15T02:56:17.546704" elapsed="0.003701"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-10-15T02:56:17.546543" elapsed="0.003936"/>
</iter>
<var>${index}</var>
<value>1</value>
<value>${int_of_members+1}</value>
<status status="PASS" start="2026-10-15T02:56:17.546341" elapsed="0.004171"/>
</for>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.551086" level="INFO">${ClusterManagement__member_index_list} = [1]</msg>
<arg>\${ClusterManagement__member_index_list}</arg>
<arg>${member_index_list}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.550700" elapsed="0.000428"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.551729" level="INFO">${ClusterManagement__index_to_ip_mapping} = {1: '10.30.171.74'}</msg>
<arg>\${ClusterManagement__index_to_ip_mapping}</arg>
<arg>${index_to_ip_mapping}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.551331" elapsed="0.000440"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.552280" level="INFO">${ClusterManagement__session_list} = ['ClusterManagement__session_1']</msg>
<arg>\${ClusterManagement__session_list}</arg>
<arg>${session_list}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.551952" elapsed="0.000367"/>
</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-10-15T02:56:17.544549" elapsed="0.007822"/>
</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-10-15T02:56:17.539610" elapsed="0.012810"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:17.552775" level="INFO">Creating Session using : alias=session, url=http://10.30.171.74:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77748022c310&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-10-15T02:56:17.552597" elapsed="0.000297"/>
</kw>
<kw name="Convert To Integer" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.553441" 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-10-15T02:56:17.553166" elapsed="0.000314"/>
</kw>
<kw name="Convert To Integer" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.553927" 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-10-15T02:56:17.553664" elapsed="0.000287"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.554433" 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-10-15T02:56:17.554132" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.554963" 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-10-15T02:56:17.554642" elapsed="0.000345"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.555572" 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-10-15T02:56:17.555185" elapsed="0.000420"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.556163" 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-10-15T02:56:17.555789" elapsed="0.000399"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.556663" level="INFO">${switches} = 3</msg>
<arg>${switches}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.556382" elapsed="0.000319"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.557144" level="INFO">${iter} = 100</msg>
<arg>${iter}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.556874" elapsed="0.000307"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.557628" level="INFO">${all_groups} = 600</msg>
<arg>${all_groups}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.557353" elapsed="0.000312"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.558107" level="INFO">${less_groups} = 594</msg>
<arg>${less_groups}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.557837" elapsed="0.000340"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.558635" level="INFO">${all_flows} = 303</msg>
<arg>${all_flows}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.558353" elapsed="0.000320"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.559116" level="INFO">${less_flows} = 300</msg>
<arg>${less_flows}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.558846" elapsed="0.000307"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.560763" level="INFO">${no_flows} = 3</msg>
<arg>${no_flows}</arg>
<arg>${SWITCHES}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:17.559324" elapsed="0.001480"/>
</kw>
<doc>Create controller session and set variables.</doc>
<status status="PASS" start="2026-10-15T02:56:17.539070" elapsed="0.021788"/>
</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-10-15T02:56:17.561940" 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-10-15T02:56:17.561597" elapsed="0.000369"/>
</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-10-15T02:56:17.575670" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.575312" elapsed="0.000393"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.576529" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1.manganese/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-10-15T02:56:17.576266" elapsed="0.000345">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:17.576698" 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-10-15T02:56:17.575875" elapsed="0.000845"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.577265" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.576902" elapsed="0.000389"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.577638" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:17.577796" 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-10-15T02:56:17.577494" elapsed="0.000330"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.578281" 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-10-15T02:56:17.578036" elapsed="0.000286"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.579366" 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-10-15T02:56:17.579119" elapsed="0.000288"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.579836" 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-10-15T02:56:17.579593" elapsed="0.000267"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.580441" 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-10-15T02:56:17.580178" elapsed="0.000301"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<kw name="Replace String Using Regexp" owner="String">
<msg time="2026-10-15T02:56:17.581580" 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-10-15T02:56:17.581077" elapsed="0.000528"/>
</kw>
<return>
<value>${encoded}</value>
<status status="PASS" start="2026-10-15T02:56:17.581652" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T02:56:17.581779" 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-10-15T02:56:17.580758" elapsed="0.001044"/>
</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-10-15T02:56:17.581960" elapsed="0.000184"/>
</kw>
<var name="${key}">NODE</var>
<var name="${value}">openflow:1</var>
<status status="PASS" start="2026-10-15T02:56:17.580052" elapsed="0.002127"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="PASS" start="2026-10-15T02:56:17.579902" elapsed="0.002308"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T02:56:17.582247" elapsed="0.000026"/>
</return>
<msg time="2026-10-15T02:56:17.582372" level="INFO">${mapping_to_use} = {'NODE': 'openflow%3A1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T02:56:17.578702" elapsed="0.003692"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.578392" elapsed="0.004030"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.582644" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.582491" elapsed="0.000204"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.578369" elapsed="0.004345"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.586264" 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-10-15T02:56:17.582865" elapsed="0.003427"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:17.586337" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:17.574760" elapsed="0.011680"/>
</kw>
<msg time="2026-10-15T02:56:17.586508" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:17.570521" elapsed="0.016032"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.590338" elapsed="0.000024"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.594373" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.598579" elapsed="0.000026"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.598756" elapsed="0.000019"/>
</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-10-15T02:56:17.598929" elapsed="0.000019"/>
</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-10-15T02:56:17.599312" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.599154" elapsed="0.000211"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:17.599140" elapsed="0.000247"/>
</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-10-15T02:56:17.599553" elapsed="0.000018"/>
</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-10-15T02:56:17.599725" elapsed="0.000017"/>
</kw>
<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-10-15T02:56:17.599881" elapsed="0.000017"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T02:56:17.599114" elapsed="0.000812"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T02:56:17.599010" elapsed="0.000939"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.600107" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:17.600173" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T02:56:17.600293" 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-10-15T02:56:17.569861" elapsed="0.030490"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:17.604360" elapsed="0.000317"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.609488" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.609134" elapsed="0.000383"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.610260" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1.manganese/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-10-15T02:56:17.610063" elapsed="0.000271">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1.manganese/post_data.prolog.json' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:17.610428" 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-10-15T02:56:17.609684" elapsed="0.000790"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.610957" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.610650" elapsed="0.000332"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.611269" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1/post_data.prolog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1/post_data.prolog.json&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:17.611392" 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-10-15T02:56:17.611159" elapsed="0.000256"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.611870" 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-10-15T02:56:17.611636" elapsed="0.000276"/>
</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-10-15T02:56:17.612273" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.611971" elapsed="0.000354"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.612760" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.612502" elapsed="0.000281"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.612347" elapsed="0.000468"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.611955" elapsed="0.000880"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.613366" 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-10-15T02:56:17.612988" elapsed="0.000403"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:17.613433" elapsed="0.000043"/>
</return>
<msg time="2026-10-15T02:56:17.613572" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:17.608630" elapsed="0.004965"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.618915" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.618552" elapsed="0.000390"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.619667" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1.manganese/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-10-15T02:56:17.619438" elapsed="0.000297">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1.manganese/post_data.epilog.json' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:17.619872" 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-10-15T02:56:17.619127" elapsed="0.000777"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.620433" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.620093" elapsed="0.000386"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.620784" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1/post_data.epilog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1/post_data.epilog.json&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:17.620920" 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-10-15T02:56:17.620652" elapsed="0.000300"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.621426" level="INFO">  ]
}
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:56:17.621185" elapsed="0.000300"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-10-15T02:56:17.621815" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.621546" elapsed="0.000332"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.622379" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.622089" elapsed="0.000315"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.621907" elapsed="0.000556"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.621530" elapsed="0.000957"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.623100" 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-10-15T02:56:17.622656" elapsed="0.000469"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:17.623169" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:56:17.623291" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:17.617959" elapsed="0.005354"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.628154" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.627847" elapsed="0.000333"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.628822" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1.manganese/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-10-15T02:56:17.628647" elapsed="0.000233">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1.manganese/data.item.json' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:17.628962" 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-10-15T02:56:17.628328" elapsed="0.000657"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.629489" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.629168" elapsed="0.000347"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.629781" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1/data.item.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1/data.item.json&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:17.629899" 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-10-15T02:56:17.629672" elapsed="0.000251"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.630352" 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-10-15T02:56:17.630122" elapsed="0.000307"/>
</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-10-15T02:56:17.630749" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.630507" elapsed="0.000302"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.631304" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.630995" elapsed="0.000333"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.630842" elapsed="0.000518"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.630490" elapsed="0.000890"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.632137" 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-10-15T02:56:17.631549" elapsed="0.000625"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:17.632220" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:56:17.632364" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:17.627383" elapsed="0.005014"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.632834" level="INFO">${items} = []</msg>
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:56:17.632583" elapsed="0.000282"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.633388" 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-10-15T02:56:17.633064" elapsed="0.000348"/>
</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-10-15T02:56:17.633967" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.633751" elapsed="0.000291"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.633737" elapsed="0.000335"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.634597" 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-10-15T02:56:17.634230" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.635345" 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-10-15T02:56:17.634811" elapsed="0.000561"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.635537" elapsed="0.000180"/>
</kw>
<var name="${iteration}">1</var>
<status status="PASS" start="2026-10-15T02:56:17.633707" elapsed="0.002046"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.636323" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.636103" elapsed="0.000449"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.636089" elapsed="0.000487"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.637116" 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-10-15T02:56:17.636740" elapsed="0.000403"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.637928" 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-10-15T02:56:17.637339" 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-10-15T02:56:17.638136" elapsed="0.000173"/>
</kw>
<var name="${iteration}">2</var>
<status status="PASS" start="2026-10-15T02:56:17.636058" elapsed="0.002286"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.638777" elapsed="0.000172"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.638547" elapsed="0.000437"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.638534" elapsed="0.000472"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.639589" 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-10-15T02:56:17.639207" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.640408" 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-10-15T02:56:17.639794" elapsed="0.000690"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.640669" elapsed="0.000181"/>
</kw>
<var name="${iteration}">3</var>
<status status="PASS" start="2026-10-15T02:56:17.638502" elapsed="0.002384"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.641264" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.641060" elapsed="0.000439"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.641046" elapsed="0.000484"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.642049" 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-10-15T02:56:17.641713" elapsed="0.000363"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.642847" 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-10-15T02:56:17.642276" elapsed="0.000605"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.643067" elapsed="0.000151"/>
</kw>
<var name="${iteration}">4</var>
<status status="PASS" start="2026-10-15T02:56:17.641005" 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-10-15T02:56:17.643682" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.643446" elapsed="0.000439"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.643433" elapsed="0.000481"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.644480" 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-10-15T02:56:17.644097" elapsed="0.000410"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.645283" 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-10-15T02:56:17.644673" 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-10-15T02:56:17.645492" elapsed="0.000185"/>
</kw>
<var name="${iteration}">5</var>
<status status="PASS" start="2026-10-15T02:56:17.643404" 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-10-15T02:56:17.646137" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.645918" elapsed="0.000417"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.645899" elapsed="0.000468"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.646905" 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-10-15T02:56:17.646549" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.647737" 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-10-15T02:56:17.647136" 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-10-15T02:56:17.647917" elapsed="0.000182"/>
</kw>
<var name="${iteration}">6</var>
<status status="PASS" start="2026-10-15T02:56:17.645863" 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-10-15T02:56:17.648570" elapsed="0.000173"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.648329" elapsed="0.000450"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.648315" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.649371" 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-10-15T02:56:17.648992" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.650231" 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-10-15T02:56:17.649615" 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-10-15T02:56:17.650438" elapsed="0.000186"/>
</kw>
<var name="${iteration}">7</var>
<status status="PASS" start="2026-10-15T02:56:17.648286" 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-10-15T02:56:17.651076" elapsed="0.000174"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.650848" elapsed="0.000437"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.650826" elapsed="0.000482"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.651870" 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-10-15T02:56:17.651503" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.652760" 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-10-15T02:56:17.652137" 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-10-15T02:56:17.652972" elapsed="0.000307"/>
</kw>
<var name="${iteration}">8</var>
<status status="PASS" start="2026-10-15T02:56:17.650788" elapsed="0.002528"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.653772" elapsed="0.000161"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.653537" elapsed="0.000433"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.653519" elapsed="0.000473"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.654499" 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-10-15T02:56:17.654160" elapsed="0.000365"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.655308" 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-10-15T02:56:17.654720" 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-10-15T02:56:17.655534" elapsed="0.000173"/>
</kw>
<var name="${iteration}">9</var>
<status status="PASS" start="2026-10-15T02:56:17.653487" 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-10-15T02:56:17.656144" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.655929" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.655915" elapsed="0.000427"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.656915" 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-10-15T02:56:17.656548" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.657758" 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-10-15T02:56:17.657144" 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-10-15T02:56:17.657962" elapsed="0.000199"/>
</kw>
<var name="${iteration}">10</var>
<status status="PASS" start="2026-10-15T02:56:17.655882" 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-10-15T02:56:17.658626" elapsed="0.000179"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.658377" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.658359" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.659376" 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-10-15T02:56:17.659042" elapsed="0.000359"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.660191" 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-10-15T02:56:17.659612" 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-10-15T02:56:17.660369" elapsed="0.000159"/>
</kw>
<var name="${iteration}">11</var>
<status status="PASS" start="2026-10-15T02:56:17.658324" 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-10-15T02:56:17.660924" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.660727" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.660714" elapsed="0.000438"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.661658" 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-10-15T02:56:17.661311" elapsed="0.000372"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.662495" 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-10-15T02:56:17.661861" 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-10-15T02:56:17.662688" elapsed="0.000146"/>
</kw>
<var name="${iteration}">12</var>
<status status="PASS" start="2026-10-15T02:56:17.660686" elapsed="0.002183"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.663281" elapsed="0.000155"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.663047" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.663032" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.664089" 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-10-15T02:56:17.663734" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.664913" 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-10-15T02:56:17.664308" 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-10-15T02:56:17.665107" elapsed="0.000144"/>
</kw>
<var name="${iteration}">13</var>
<status status="PASS" start="2026-10-15T02:56:17.662988" elapsed="0.002297"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.665682" elapsed="0.000168"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.665445" elapsed="0.000443"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.665431" elapsed="0.000479"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.666439" 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-10-15T02:56:17.666105" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.667236" 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-10-15T02:56:17.666661" 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-10-15T02:56:17.667444" elapsed="0.000185"/>
</kw>
<var name="${iteration}">14</var>
<status status="PASS" start="2026-10-15T02:56:17.665404" 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-10-15T02:56:17.668096" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.667861" elapsed="0.000432"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.667840" elapsed="0.000480"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.668873" 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-10-15T02:56:17.668514" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.669732" 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-10-15T02:56:17.669105" 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-10-15T02:56:17.669908" elapsed="0.000154"/>
</kw>
<var name="${iteration}">15</var>
<status status="PASS" start="2026-10-15T02:56:17.667805" elapsed="0.002290"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.670471" elapsed="0.000169"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.670254" elapsed="0.000421"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.670241" elapsed="0.000456"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.671161" 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-10-15T02:56:17.670849" elapsed="0.000336"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.671912" 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-10-15T02:56:17.671348" elapsed="0.000592"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.672129" elapsed="0.000167"/>
</kw>
<var name="${iteration}">16</var>
<status status="PASS" start="2026-10-15T02:56:17.670213" elapsed="0.002118"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.672783" elapsed="0.000173"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.672540" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.672525" elapsed="0.000514"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.673534" 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-10-15T02:56:17.673211" elapsed="0.000353"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.674346" 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-10-15T02:56:17.673757" 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-10-15T02:56:17.674620" elapsed="0.000156"/>
</kw>
<var name="${iteration}">17</var>
<status status="PASS" start="2026-10-15T02:56:17.672494" elapsed="0.002317"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.675190" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.674970" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.674957" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.675852" 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-10-15T02:56:17.675553" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.676572" 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-10-15T02:56:17.676051" elapsed="0.000548"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.676748" elapsed="0.000140"/>
</kw>
<var name="${iteration}">18</var>
<status status="PASS" start="2026-10-15T02:56:17.674929" elapsed="0.001991"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.677310" elapsed="0.000166"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.677094" elapsed="0.000424"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.677081" elapsed="0.000460"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.678054" 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-10-15T02:56:17.677696" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.678788" 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-10-15T02:56:17.678268" elapsed="0.000546"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.678962" elapsed="0.000184"/>
</kw>
<var name="${iteration}">19</var>
<status status="PASS" start="2026-10-15T02:56:17.677052" elapsed="0.002135"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.679571" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.679357" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.679344" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.680258" 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-10-15T02:56:17.679931" elapsed="0.000351"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.680953" 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-10-15T02:56:17.680443" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.681140" elapsed="0.000140"/>
</kw>
<var name="${iteration}">20</var>
<status status="PASS" start="2026-10-15T02:56:17.679315" elapsed="0.001998"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.681695" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.681493" elapsed="0.000376"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.681474" elapsed="0.000417"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.682351" 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-10-15T02:56:17.682055" elapsed="0.000321"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.683102" 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-10-15T02:56:17.682579" elapsed="0.000550"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.683276" elapsed="0.000140"/>
</kw>
<var name="${iteration}">21</var>
<status status="PASS" start="2026-10-15T02:56:17.681431" elapsed="0.002033"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.683850" elapsed="0.000150"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.683635" elapsed="0.000414"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.683616" elapsed="0.000455"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.684543" 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-10-15T02:56:17.684228" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.685340" 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-10-15T02:56:17.684728" 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-10-15T02:56:17.685563" elapsed="0.000143"/>
</kw>
<var name="${iteration}">22</var>
<status status="PASS" start="2026-10-15T02:56:17.683582" elapsed="0.002156"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.686115" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.685895" elapsed="0.000415"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.685882" elapsed="0.000453"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.686820" 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-10-15T02:56:17.686519" elapsed="0.000326"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.687540" 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-10-15T02:56:17.687007" elapsed="0.000559"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.687714" elapsed="0.000141"/>
</kw>
<var name="${iteration}">23</var>
<status status="PASS" start="2026-10-15T02:56:17.685854" elapsed="0.002033"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.688255" elapsed="0.000166"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.688059" elapsed="0.000411"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.688046" elapsed="0.000447"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.688943" 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-10-15T02:56:17.688645" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.689650" 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-10-15T02:56:17.689143" elapsed="0.000533"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.689824" elapsed="0.000141"/>
</kw>
<var name="${iteration}">24</var>
<status status="PASS" start="2026-10-15T02:56:17.688003" elapsed="0.001994"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.690365" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.690169" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.690156" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.691046" 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-10-15T02:56:17.690730" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.691745" 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-10-15T02:56:17.691233" elapsed="0.000538"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.691919" elapsed="0.000155"/>
</kw>
<var name="${iteration}">25</var>
<status status="PASS" start="2026-10-15T02:56:17.690127" elapsed="0.001980"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.692477" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.692264" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.692251" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.693180" 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-10-15T02:56:17.692834" elapsed="0.000371"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.693883" 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-10-15T02:56:17.693367" elapsed="0.000543"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.694071" elapsed="0.000141"/>
</kw>
<var name="${iteration}">26</var>
<status status="PASS" start="2026-10-15T02:56:17.692223" elapsed="0.002022"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.694626" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.694412" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.694392" elapsed="0.000431"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.695322" 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-10-15T02:56:17.694973" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.696216" 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-10-15T02:56:17.695624" 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-10-15T02:56:17.696422" elapsed="0.000168"/>
</kw>
<var name="${iteration}">27</var>
<status status="PASS" start="2026-10-15T02:56:17.694364" 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-10-15T02:56:17.697044" elapsed="0.000172"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.696802" elapsed="0.000450"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.696788" elapsed="0.000486"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.697743" 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-10-15T02:56:17.697426" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.698578" 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-10-15T02:56:17.697949" 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-10-15T02:56:17.698777" elapsed="0.000146"/>
</kw>
<var name="${iteration}">28</var>
<status status="PASS" start="2026-10-15T02:56:17.696755" elapsed="0.002202"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.699361" elapsed="0.000180"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.699137" elapsed="0.000451"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.699123" elapsed="0.000498"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.700188" 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-10-15T02:56:17.699803" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.701750" 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-10-15T02:56:17.700395" elapsed="0.001382"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.701930" elapsed="0.000176"/>
</kw>
<var name="${iteration}">29</var>
<status status="PASS" start="2026-10-15T02:56:17.699094" elapsed="0.003048"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.702537" elapsed="0.000161"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.702303" elapsed="0.000431"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.702290" elapsed="0.000466"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.703285" 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-10-15T02:56:17.702937" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.704043" 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-10-15T02:56:17.703523" elapsed="0.000548"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.704220" elapsed="0.000141"/>
</kw>
<var name="${iteration}">30</var>
<status status="PASS" start="2026-10-15T02:56:17.702261" elapsed="0.002133"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.704766" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.704570" elapsed="0.000371"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.704556" elapsed="0.000407"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.705422" 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-10-15T02:56:17.705124" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.706137" 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-10-15T02:56:17.705624" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.706312" elapsed="0.000155"/>
</kw>
<var name="${iteration}">31</var>
<status status="PASS" start="2026-10-15T02:56:17.704528" elapsed="0.001972"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.706859" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.706661" elapsed="0.000415"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.706647" elapsed="0.000453"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.707567" 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-10-15T02:56:17.707253" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.708272" 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-10-15T02:56:17.707755" elapsed="0.000543"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.708462" elapsed="0.000143"/>
</kw>
<var name="${iteration}">32</var>
<status status="PASS" start="2026-10-15T02:56:17.706619" elapsed="0.002020"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.708992" elapsed="0.000231"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.708796" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.708784" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.709745" 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-10-15T02:56:17.709430" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.710489" 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-10-15T02:56:17.709931" elapsed="0.000586"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.710667" elapsed="0.000143"/>
</kw>
<var name="${iteration}">33</var>
<status status="PASS" start="2026-10-15T02:56:17.708756" elapsed="0.002087"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.711211" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.711002" elapsed="0.000384"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.710989" elapsed="0.000418"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.711871" 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-10-15T02:56:17.711572" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.712627" 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-10-15T02:56:17.712074" elapsed="0.000580"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.712803" elapsed="0.000161"/>
</kw>
<var name="${iteration}">34</var>
<status status="PASS" start="2026-10-15T02:56:17.710961" elapsed="0.002049"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.713443" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.713217" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.713197" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.714258" 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-10-15T02:56:17.713873" elapsed="0.000419"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.715070" 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-10-15T02:56:17.714509" elapsed="0.000587"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.715246" elapsed="0.000171"/>
</kw>
<var name="${iteration}">35</var>
<status status="PASS" start="2026-10-15T02:56:17.713161" 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-10-15T02:56:17.715885" elapsed="0.000177"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.715651" elapsed="0.000451"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.715638" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.716677" 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-10-15T02:56:17.716309" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.753514" 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-10-15T02:56:17.716893" elapsed="0.036665"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.753852" elapsed="0.000223"/>
</kw>
<var name="${iteration}">36</var>
<status status="PASS" start="2026-10-15T02:56:17.715608" elapsed="0.038511"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.754587" elapsed="0.000152"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.754340" elapsed="0.000436"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.754316" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.755363" 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-10-15T02:56:17.754990" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.756158" 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-10-15T02:56:17.755615" elapsed="0.000576"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.756356" elapsed="0.000178"/>
</kw>
<var name="${iteration}">37</var>
<status status="PASS" start="2026-10-15T02:56:17.754274" elapsed="0.002296"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.756998" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.756760" elapsed="0.000464"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.756741" elapsed="0.000507"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.757747" 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-10-15T02:56:17.757415" elapsed="0.000357"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.758466" 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-10-15T02:56:17.757936" elapsed="0.000558"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.758646" elapsed="0.000142"/>
</kw>
<var name="${iteration}">38</var>
<status status="PASS" start="2026-10-15T02:56:17.756708" elapsed="0.002114"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.759200" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.758986" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.758973" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.759871" 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-10-15T02:56:17.759567" elapsed="0.000328"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.760585" 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-10-15T02:56:17.760073" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.760763" elapsed="0.000142"/>
</kw>
<var name="${iteration}">39</var>
<status status="PASS" start="2026-10-15T02:56:17.758944" elapsed="0.001994"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.761336" elapsed="0.000171"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.761120" elapsed="0.000427"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.761102" elapsed="0.000468"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.762095" 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-10-15T02:56:17.761740" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.762880" 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-10-15T02:56:17.762314" elapsed="0.000593"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.763077" elapsed="0.000144"/>
</kw>
<var name="${iteration}">40</var>
<status status="PASS" start="2026-10-15T02:56:17.761073" elapsed="0.002182"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.763630" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.763414" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.763401" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.764294" 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-10-15T02:56:17.763980" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.764991" 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-10-15T02:56:17.764497" elapsed="0.000565"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.765217" elapsed="0.000143"/>
</kw>
<var name="${iteration}">41</var>
<status status="PASS" start="2026-10-15T02:56:17.763373" elapsed="0.002020"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.765854" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.765571" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.765558" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.766545" 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-10-15T02:56:17.766221" elapsed="0.000349"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.767241" 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-10-15T02:56:17.766735" elapsed="0.000532"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.767416" elapsed="0.000160"/>
</kw>
<var name="${iteration}">42</var>
<status status="PASS" start="2026-10-15T02:56:17.765529" 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-10-15T02:56:17.767967" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.767770" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.767757" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.768679" 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-10-15T02:56:17.768332" elapsed="0.000371"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.769376" 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-10-15T02:56:17.768868" elapsed="0.000534"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.769568" elapsed="0.000143"/>
</kw>
<var name="${iteration}">43</var>
<status status="PASS" start="2026-10-15T02:56:17.767729" elapsed="0.002015"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.770118" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.769906" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.769893" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.770781" 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-10-15T02:56:17.770481" elapsed="0.000324"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.771489" 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-10-15T02:56:17.770966" elapsed="0.000550"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.771664" elapsed="0.000140"/>
</kw>
<var name="${iteration}">44</var>
<status status="PASS" start="2026-10-15T02:56:17.769865" elapsed="0.001972"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.772210" elapsed="0.000139"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.771998" elapsed="0.000385"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.771984" elapsed="0.000420"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.772866" 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-10-15T02:56:17.772569" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.773621" 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-10-15T02:56:17.773092" elapsed="0.000555"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.773795" elapsed="0.000139"/>
</kw>
<var name="${iteration}">45</var>
<status status="PASS" start="2026-10-15T02:56:17.771956" elapsed="0.002011"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.774339" elapsed="0.000155"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.774144" elapsed="0.000384"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.774131" elapsed="0.000419"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.775000" 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-10-15T02:56:17.774704" elapsed="0.000335"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.775750" 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-10-15T02:56:17.775236" elapsed="0.000540"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.775925" elapsed="0.000158"/>
</kw>
<var name="${iteration}">46</var>
<status status="PASS" start="2026-10-15T02:56:17.774102" elapsed="0.002015"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.776492" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.776279" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.776266" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.777158" 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-10-15T02:56:17.776842" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.777863" 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-10-15T02:56:17.777344" elapsed="0.000546"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.778054" elapsed="0.000144"/>
</kw>
<var name="${iteration}">47</var>
<status status="PASS" start="2026-10-15T02:56:17.776237" elapsed="0.001995"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.778607" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.778392" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.778379" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.779287" 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-10-15T02:56:17.778972" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.780099" 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-10-15T02:56:17.779489" 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-10-15T02:56:17.780276" elapsed="0.000140"/>
</kw>
<var name="${iteration}">48</var>
<status status="PASS" start="2026-10-15T02:56:17.778351" elapsed="0.002112"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.780842" elapsed="0.000148"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.780627" elapsed="0.000422"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.780613" elapsed="0.000462"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.781549" 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-10-15T02:56:17.781228" elapsed="0.000347"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.782252" 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-10-15T02:56:17.781742" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.782428" elapsed="0.000158"/>
</kw>
<var name="${iteration}">49</var>
<status status="PASS" start="2026-10-15T02:56:17.780585" elapsed="0.002035"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.783006" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.782799" elapsed="0.000428"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.782784" elapsed="0.000465"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.783803" 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-10-15T02:56:17.783431" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.784628" 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-10-15T02:56:17.784034" 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-10-15T02:56:17.784839" elapsed="0.000158"/>
</kw>
<var name="${iteration}">50</var>
<status status="PASS" start="2026-10-15T02:56:17.782747" 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-10-15T02:56:17.785412" elapsed="0.000177"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.785208" elapsed="0.000445"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.785195" elapsed="0.000481"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.786171" 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-10-15T02:56:17.785847" elapsed="0.000349"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.786875" 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-10-15T02:56:17.786360" elapsed="0.000541"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.787068" elapsed="0.000143"/>
</kw>
<var name="${iteration}">51</var>
<status status="PASS" start="2026-10-15T02:56:17.785167" elapsed="0.002077"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.787683" elapsed="0.000170"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.787427" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.787414" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.788444" 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-10-15T02:56:17.788105" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.789187" 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-10-15T02:56:17.788653" elapsed="0.000561"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.789378" elapsed="0.000163"/>
</kw>
<var name="${iteration}">52</var>
<status status="PASS" start="2026-10-15T02:56:17.787384" elapsed="0.002190"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.789936" elapsed="0.000155"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.789737" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.789724" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.790611" 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-10-15T02:56:17.790297" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.791318" 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-10-15T02:56:17.790794" elapsed="0.000551"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.791538" elapsed="0.000150"/>
</kw>
<var name="${iteration}">53</var>
<status status="PASS" start="2026-10-15T02:56:17.789695" elapsed="0.002037"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.792158" elapsed="0.000154"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.791925" elapsed="0.000422"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.791907" elapsed="0.000462"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.792839" 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-10-15T02:56:17.792537" elapsed="0.000326"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.793554" 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-10-15T02:56:17.793039" elapsed="0.000541"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.793728" elapsed="0.000141"/>
</kw>
<var name="${iteration}">54</var>
<status status="PASS" start="2026-10-15T02:56:17.791868" elapsed="0.002035"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.794278" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.794082" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.794069" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.795070" 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-10-15T02:56:17.794644" elapsed="0.000450"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.795768" 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-10-15T02:56:17.795256" elapsed="0.000538"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.795975" elapsed="0.000163"/>
</kw>
<var name="${iteration}">55</var>
<status status="PASS" start="2026-10-15T02:56:17.794040" elapsed="0.002132"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.796544" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.796332" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.796319" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.797212" 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-10-15T02:56:17.796896" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.797911" 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-10-15T02:56:17.797400" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.798102" elapsed="0.000141"/>
</kw>
<var name="${iteration}">56</var>
<status status="PASS" start="2026-10-15T02:56:17.796291" elapsed="0.001984"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.798647" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.798434" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.798421" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.799303" 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-10-15T02:56:17.798993" elapsed="0.000335"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.799997" 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-10-15T02:56:17.799504" elapsed="0.000533"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.800187" elapsed="0.000141"/>
</kw>
<var name="${iteration}">57</var>
<status status="PASS" start="2026-10-15T02:56:17.798394" elapsed="0.001967"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.800734" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.800537" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.800524" elapsed="0.000407"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.801397" 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-10-15T02:56:17.801098" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.802108" 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-10-15T02:56:17.801599" elapsed="0.000535"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.802283" elapsed="0.000140"/>
</kw>
<var name="${iteration}">58</var>
<status status="PASS" start="2026-10-15T02:56:17.800496" elapsed="0.001975"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.802829" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.802633" elapsed="0.000369"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.802620" elapsed="0.000417"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.803503" 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-10-15T02:56:17.803188" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.804196" 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-10-15T02:56:17.803691" elapsed="0.000531"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.804372" elapsed="0.000158"/>
</kw>
<var name="${iteration}">59</var>
<status status="PASS" start="2026-10-15T02:56:17.802592" elapsed="0.001971"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.804919" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.804723" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.804709" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.805595" 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-10-15T02:56:17.805280" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.806293" 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-10-15T02:56:17.805783" elapsed="0.000566"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.806517" elapsed="0.000144"/>
</kw>
<var name="${iteration}">60</var>
<status status="PASS" start="2026-10-15T02:56:17.804681" elapsed="0.002013"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.807069" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.806856" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.806842" elapsed="0.000428"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.807740" 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-10-15T02:56:17.807422" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.808443" 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-10-15T02:56:17.807930" elapsed="0.000556"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.808638" elapsed="0.000144"/>
</kw>
<var name="${iteration}">61</var>
<status status="PASS" start="2026-10-15T02:56:17.806814" elapsed="0.002002"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.809189" elapsed="0.000246"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.808978" elapsed="0.000509"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.808965" elapsed="0.000545"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.809966" 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-10-15T02:56:17.809663" elapsed="0.000327"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.810680" 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-10-15T02:56:17.810168" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.810857" elapsed="0.000141"/>
</kw>
<var name="${iteration}">62</var>
<status status="PASS" start="2026-10-15T02:56:17.808937" elapsed="0.002107"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.811403" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.811205" elapsed="0.000392"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.811191" elapsed="0.000428"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.812086" 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-10-15T02:56:17.811771" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.812813" 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-10-15T02:56:17.812275" elapsed="0.000565"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.813009" elapsed="0.000177"/>
</kw>
<var name="${iteration}">63</var>
<status status="PASS" start="2026-10-15T02:56:17.811163" elapsed="0.002058"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.813631" elapsed="0.000169"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.813395" elapsed="0.000448"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.813381" elapsed="0.000485"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.814392" 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-10-15T02:56:17.814066" elapsed="0.000352"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.815178" 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-10-15T02:56:17.814600" 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-10-15T02:56:17.815373" elapsed="0.000188"/>
</kw>
<var name="${iteration}">64</var>
<status status="PASS" start="2026-10-15T02:56:17.813343" 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-10-15T02:56:17.816006" elapsed="0.000162"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.815791" elapsed="0.000412"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.815777" elapsed="0.000448"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.816701" 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-10-15T02:56:17.816376" elapsed="0.000349"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.817495" 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-10-15T02:56:17.816921" 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-10-15T02:56:17.817696" elapsed="0.000162"/>
</kw>
<var name="${iteration}">65</var>
<status status="PASS" start="2026-10-15T02:56:17.815746" elapsed="0.002158"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.818334" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.818099" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.818086" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.819088" 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-10-15T02:56:17.818750" elapsed="0.000364"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.819900" 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-10-15T02:56:17.819296" 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-10-15T02:56:17.820108" elapsed="0.000146"/>
</kw>
<var name="${iteration}">66</var>
<status status="PASS" start="2026-10-15T02:56:17.818056" 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-10-15T02:56:17.820681" elapsed="0.000145"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.820461" elapsed="0.000406"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.820434" elapsed="0.000463"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.821423" 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-10-15T02:56:17.821082" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.822233" 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-10-15T02:56:17.821658" 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-10-15T02:56:17.822410" elapsed="0.000159"/>
</kw>
<var name="${iteration}">67</var>
<status status="PASS" start="2026-10-15T02:56:17.820406" elapsed="0.002197"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.822962" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.822763" elapsed="0.000392"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.822750" elapsed="0.000427"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.823646" 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-10-15T02:56:17.823327" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.824352" 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-10-15T02:56:17.823833" elapsed="0.000545"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.824542" elapsed="0.000142"/>
</kw>
<var name="${iteration}">68</var>
<status status="PASS" start="2026-10-15T02:56:17.822722" elapsed="0.001995"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.825196" elapsed="0.000145"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.824978" elapsed="0.000399"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.824864" elapsed="0.000535"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.825874" 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-10-15T02:56:17.825567" elapsed="0.000332"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.826590" 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-10-15T02:56:17.826077" elapsed="0.000540"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.826766" elapsed="0.000142"/>
</kw>
<var name="${iteration}">69</var>
<status status="PASS" start="2026-10-15T02:56:17.824836" elapsed="0.002105"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.827312" elapsed="0.000155"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.827115" elapsed="0.000417"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.827102" elapsed="0.000453"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.828011" 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-10-15T02:56:17.827708" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.828725" 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-10-15T02:56:17.828215" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.828900" elapsed="0.000158"/>
</kw>
<var name="${iteration}">70</var>
<status status="PASS" start="2026-10-15T02:56:17.827073" elapsed="0.002018"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.829445" elapsed="0.000157"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.829249" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.829236" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.830124" 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-10-15T02:56:17.829808" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.830830" 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-10-15T02:56:17.830310" elapsed="0.000546"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.831003" elapsed="0.000157"/>
</kw>
<var name="${iteration}">71</var>
<status status="PASS" start="2026-10-15T02:56:17.829208" elapsed="0.001984"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.831564" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.831351" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.831338" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.832292" 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-10-15T02:56:17.831912" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.832988" 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-10-15T02:56:17.832495" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.833185" elapsed="0.000140"/>
</kw>
<var name="${iteration}">72</var>
<status status="PASS" start="2026-10-15T02:56:17.831310" elapsed="0.002048"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.833728" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.833532" elapsed="0.000369"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.833519" elapsed="0.000404"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.834386" 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-10-15T02:56:17.834089" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.835093" 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-10-15T02:56:17.834587" elapsed="0.000532"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.835265" elapsed="0.000140"/>
</kw>
<var name="${iteration}">73</var>
<status status="PASS" start="2026-10-15T02:56:17.833490" elapsed="0.001948"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.835809" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.835613" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.835600" elapsed="0.000406"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.836487" 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-10-15T02:56:17.836172" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.837190" 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-10-15T02:56:17.836673" elapsed="0.000544"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.837398" elapsed="0.000162"/>
</kw>
<var name="${iteration}">74</var>
<status status="PASS" start="2026-10-15T02:56:17.835571" elapsed="0.002023"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.837958" elapsed="0.000157"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.837760" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.837746" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.838642" 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-10-15T02:56:17.838325" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.839378" 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-10-15T02:56:17.838830" elapsed="0.000575"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.839570" elapsed="0.000142"/>
</kw>
<var name="${iteration}">75</var>
<status status="PASS" start="2026-10-15T02:56:17.837717" elapsed="0.002027"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.840222" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.840008" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.839994" elapsed="0.000427"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.840891" 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-10-15T02:56:17.840589" elapsed="0.000327"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.841723" 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-10-15T02:56:17.841197" elapsed="0.000553"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.841900" elapsed="0.000158"/>
</kw>
<var name="${iteration}">76</var>
<status status="PASS" start="2026-10-15T02:56:17.839965" elapsed="0.002127"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.842464" elapsed="0.000145"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.842253" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.842240" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.843131" 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-10-15T02:56:17.842817" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.843823" 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-10-15T02:56:17.843317" elapsed="0.000532"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.843998" elapsed="0.000157"/>
</kw>
<var name="${iteration}">77</var>
<status status="PASS" start="2026-10-15T02:56:17.842212" elapsed="0.001976"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.844558" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.844347" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.844333" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.845217" 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-10-15T02:56:17.844904" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.845912" 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-10-15T02:56:17.845402" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.846100" elapsed="0.000141"/>
</kw>
<var name="${iteration}">78</var>
<status status="PASS" start="2026-10-15T02:56:17.844305" elapsed="0.001969"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.846647" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.846434" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.846420" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.847302" 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-10-15T02:56:17.846991" elapsed="0.000334"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.848078" 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-10-15T02:56:17.847513" 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-10-15T02:56:17.848307" elapsed="0.000187"/>
</kw>
<var name="${iteration}">79</var>
<status status="PASS" start="2026-10-15T02:56:17.846391" elapsed="0.002139"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.848926" elapsed="0.000173"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.848721" elapsed="0.000414"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.848707" elapsed="0.000450"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.849627" 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-10-15T02:56:17.849310" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.850368" 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-10-15T02:56:17.849831" elapsed="0.000563"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.850561" elapsed="0.000143"/>
</kw>
<var name="${iteration}">80</var>
<status status="PASS" start="2026-10-15T02:56:17.848674" elapsed="0.002063"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.851166" elapsed="0.000165"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.850921" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.850908" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.851950" 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-10-15T02:56:17.851607" elapsed="0.000369"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.852754" 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-10-15T02:56:17.852161" 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-10-15T02:56:17.852958" elapsed="0.000182"/>
</kw>
<var name="${iteration}">81</var>
<status status="PASS" start="2026-10-15T02:56:17.850879" elapsed="0.002297"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.853574" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.853357" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.853343" elapsed="0.000431"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.854238" 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-10-15T02:56:17.853924" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.855077" 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-10-15T02:56:17.854425" 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-10-15T02:56:17.855253" elapsed="0.000142"/>
</kw>
<var name="${iteration}">82</var>
<status status="PASS" start="2026-10-15T02:56:17.853314" elapsed="0.002114"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.855799" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.855604" elapsed="0.000370"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.855591" elapsed="0.000405"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.856474" 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-10-15T02:56:17.856160" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.857253" 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-10-15T02:56:17.856686" 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-10-15T02:56:17.857433" elapsed="0.000164"/>
</kw>
<var name="${iteration}">83</var>
<status status="PASS" start="2026-10-15T02:56:17.855563" elapsed="0.002068"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.858055" elapsed="0.000174"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.857809" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.857796" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.858791" 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-10-15T02:56:17.858470" elapsed="0.000348"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.859619" 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-10-15T02:56:17.859030" 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-10-15T02:56:17.859825" elapsed="0.000172"/>
</kw>
<var name="${iteration}">84</var>
<status status="PASS" start="2026-10-15T02:56:17.857765" elapsed="0.002285"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.860429" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.860229" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.860214" elapsed="0.000431"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.861161" 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-10-15T02:56:17.860815" elapsed="0.000373"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.861958" 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-10-15T02:56:17.861369" 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-10-15T02:56:17.862174" elapsed="0.000157"/>
</kw>
<var name="${iteration}">85</var>
<status status="PASS" start="2026-10-15T02:56:17.860185" elapsed="0.002190"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.862809" elapsed="0.000147"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.862584" elapsed="0.000406"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.862565" elapsed="0.000465"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.863504" 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-10-15T02:56:17.863185" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.864213" 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-10-15T02:56:17.863690" elapsed="0.000549"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.864389" elapsed="0.000157"/>
</kw>
<var name="${iteration}">86</var>
<status status="PASS" start="2026-10-15T02:56:17.862527" elapsed="0.002052"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.864933" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.864737" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.864724" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.865614" 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-10-15T02:56:17.865299" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.866319" 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-10-15T02:56:17.865800" elapsed="0.000546"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.866513" elapsed="0.000143"/>
</kw>
<var name="${iteration}">87</var>
<status status="PASS" start="2026-10-15T02:56:17.864696" elapsed="0.001994"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.867070" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.866851" elapsed="0.000398"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.866838" elapsed="0.000434"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.867740" 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-10-15T02:56:17.867424" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.868444" 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-10-15T02:56:17.867926" elapsed="0.000561"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.868638" elapsed="0.000144"/>
</kw>
<var name="${iteration}">88</var>
<status status="PASS" start="2026-10-15T02:56:17.866810" elapsed="0.002005"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.869190" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.868976" elapsed="0.000424"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.868962" elapsed="0.000461"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.870003" 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-10-15T02:56:17.869593" elapsed="0.000448"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.870725" 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-10-15T02:56:17.870208" elapsed="0.000543"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.870901" elapsed="0.000156"/>
</kw>
<var name="${iteration}">89</var>
<status status="PASS" start="2026-10-15T02:56:17.868934" elapsed="0.002157"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.871464" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.871252" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.871239" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.872126" 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-10-15T02:56:17.871814" elapsed="0.000336"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.872825" 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-10-15T02:56:17.872313" elapsed="0.000538"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.873000" elapsed="0.000158"/>
</kw>
<var name="${iteration}">90</var>
<status status="PASS" start="2026-10-15T02:56:17.871211" elapsed="0.001980"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.873565" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.873352" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.873339" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.874271" 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-10-15T02:56:17.873915" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.874966" 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-10-15T02:56:17.874472" elapsed="0.000520"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.875153" elapsed="0.000140"/>
</kw>
<var name="${iteration}">91</var>
<status status="PASS" start="2026-10-15T02:56:17.873311" elapsed="0.002014"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.875699" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.875501" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.875487" elapsed="0.000407"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.876357" 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-10-15T02:56:17.876057" elapsed="0.000324"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.877066" 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-10-15T02:56:17.876559" elapsed="0.000533"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.877241" elapsed="0.000140"/>
</kw>
<var name="${iteration}">92</var>
<status status="PASS" start="2026-10-15T02:56:17.875443" elapsed="0.001971"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.877787" elapsed="0.000145"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.877590" elapsed="0.000383"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.877577" elapsed="0.000419"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.878481" 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-10-15T02:56:17.878163" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.879179" 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-10-15T02:56:17.878670" elapsed="0.000535"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.879386" elapsed="0.000160"/>
</kw>
<var name="${iteration}">93</var>
<status status="PASS" start="2026-10-15T02:56:17.877549" elapsed="0.002031"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.879948" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.879741" elapsed="0.000423"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.879728" elapsed="0.000458"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.880660" 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-10-15T02:56:17.880339" elapsed="0.000346"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.881361" 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-10-15T02:56:17.880847" elapsed="0.000540"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.881555" elapsed="0.000142"/>
</kw>
<var name="${iteration}">94</var>
<status status="PASS" start="2026-10-15T02:56:17.879699" elapsed="0.002031"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.882102" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.881890" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.881877" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.882769" 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-10-15T02:56:17.882467" elapsed="0.000327"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.883485" 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-10-15T02:56:17.882956" elapsed="0.000556"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.883660" elapsed="0.000139"/>
</kw>
<var name="${iteration}">95</var>
<status status="PASS" start="2026-10-15T02:56:17.881850" elapsed="0.001982"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.884201" elapsed="0.000267"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.883991" elapsed="0.000513"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.883977" elapsed="0.000549"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.884982" 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-10-15T02:56:17.884679" elapsed="0.000327"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.885698" 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-10-15T02:56:17.885181" elapsed="0.000543"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.885875" elapsed="0.000153"/>
</kw>
<var name="${iteration}">96</var>
<status status="PASS" start="2026-10-15T02:56:17.883949" elapsed="0.002113"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.886421" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.886223" elapsed="0.000392"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.886209" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.887110" 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-10-15T02:56:17.886791" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.887813" 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-10-15T02:56:17.887299" elapsed="0.000540"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.887986" elapsed="0.000158"/>
</kw>
<var name="${iteration}">97</var>
<status status="PASS" start="2026-10-15T02:56:17.886181" elapsed="0.001996"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.888551" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.888337" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.888323" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.889212" 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-10-15T02:56:17.888899" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.889909" 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-10-15T02:56:17.889397" elapsed="0.000567"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.890135" elapsed="0.000144"/>
</kw>
<var name="${iteration}">98</var>
<status status="PASS" start="2026-10-15T02:56:17.888295" elapsed="0.002017"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.890687" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.890487" elapsed="0.000375"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.890472" elapsed="0.000413"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.891353" 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-10-15T02:56:17.891052" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.892068" 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-10-15T02:56:17.891555" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.892242" elapsed="0.000141"/>
</kw>
<var name="${iteration}">99</var>
<status status="PASS" start="2026-10-15T02:56:17.890430" elapsed="0.001986"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.892787" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.892591" elapsed="0.000370"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.892578" elapsed="0.000405"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.893446" 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-10-15T02:56:17.893147" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.894155" 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-10-15T02:56:17.893647" elapsed="0.000534"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.894329" elapsed="0.000157"/>
</kw>
<var name="${iteration}">100</var>
<status status="PASS" start="2026-10-15T02:56:17.892550" elapsed="0.001969"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="PASS" start="2026-10-15T02:56:17.633478" elapsed="0.261068"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.895645" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="PASS" start="2026-10-15T02:56:17.894701" elapsed="0.000970"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:17.895725" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T02:56:17.895877" 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-10-15T02:56:17.603632" elapsed="0.292270"/>
</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-10-15T02:56:17.897169" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.896886" elapsed="0.000358">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-1/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:17.897332" 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-10-15T02:56:17.896563" elapsed="0.000792"/>
</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-10-15T02:56:17.897649" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.897417" elapsed="0.000283"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.898185" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.897907" elapsed="0.000302"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.897723" elapsed="0.000552"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.897401" elapsed="0.000897"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.898951" 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-10-15T02:56:17.898473" elapsed="0.000502"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T02:56:17.899035" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:56:17.899162" 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-manganese/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-10-15T02:56:17.896225" elapsed="0.002960"/>
</kw>
<kw name="Post_To_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.900561" 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-10-15T02:56:17.900317" elapsed="0.000290"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.901062" 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-10-15T02:56:17.900828" elapsed="0.000721"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.901958" 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-10-15T02:56:17.901738" elapsed="0.000261"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.902409" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:56:17.902196" elapsed="0.000267"/>
</kw>
<kw name="Join_Two_Headers" owner="TemplatedRequests">
<kw name="Copy Dictionary" owner="Collections">
<msg time="2026-10-15T02:56:17.903187" 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-10-15T02:56:17.902992" elapsed="0.000219"/>
</kw>
<kw name="Get Dictionary Items" owner="Collections">
<msg time="2026-10-15T02:56:17.903547" 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-10-15T02:56:17.903360" elapsed="0.000212"/>
</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-10-15T02:56:17.903731" elapsed="0.000145"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.904327" 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-10-15T02:56:17.904071" elapsed="0.000298"/>
</kw>
<return>
<value>${accumulator}</value>
<status status="PASS" start="2026-10-15T02:56:17.904408" elapsed="0.000035"/>
</return>
<msg time="2026-10-15T02:56:17.904581" 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-10-15T02:56:17.902641" elapsed="0.001964"/>
</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-10-15T02:56:17.911124" level="INFO">POST Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '52323', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
  "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,
       ... (set the log level to DEBUG or TRACE to see the full content) 
 </msg>
<msg time="2026-10-15T02:56:17.911286" level="INFO">POST Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:17.911494" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:17.904906" elapsed="0.006943">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</kw>
<status status="FAIL" start="2026-10-15T02:56:17.904678" elapsed="0.007247">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:17.912154" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.911955" elapsed="0.000263"/>
</branch>
<status status="FAIL" start="2026-10-15T02:56:17.904656" elapsed="0.007595">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:17.912607" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:17.912733" elapsed="0.000012"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:56:17.912699" elapsed="0.000070"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:17.912684" elapsed="0.000105"/>
</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-10-15T02:56:17.912924" elapsed="0.000019"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T02:56:17.912984" elapsed="0.000014"/>
</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-10-15T02:56:17.899534" elapsed="0.013560">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:17.913164" elapsed="0.000014"/>
</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-10-15T02:56:17.566265" elapsed="0.346984">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:17.913534" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.913351" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:17.913334" elapsed="0.000288"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:17.913652" elapsed="0.000014"/>
</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-10-15T02:56:17.565559" elapsed="0.348180">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:17.561425" elapsed="0.352375">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:17.561242" elapsed="0.352607">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</for>
<doc>Add 100 groups of type 1 in every switch.</doc>
<status status="FAIL" start="2026-10-15T02:56:17.560934" elapsed="0.353058">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:17.915272" 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-10-15T02:56:17.914891" elapsed="0.000407"/>
</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-10-15T02:56:17.928802" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.928501" elapsed="0.000327"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.929508" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2.manganese/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-10-15T02:56:17.929308" elapsed="0.000260">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:17.929659" 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-10-15T02:56:17.928981" elapsed="0.000704"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.930224" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.929871" elapsed="0.000384"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.930569" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:17.930715" 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-10-15T02:56:17.930420" elapsed="0.000324"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.931205" 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-10-15T02:56:17.930947" elapsed="0.000301"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.932265" 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-10-15T02:56:17.931989" elapsed="0.000323"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.932821" 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-10-15T02:56:17.932530" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.933497" 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-10-15T02:56:17.933190" elapsed="0.000333"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<kw name="Replace String Using Regexp" owner="String">
<msg time="2026-10-15T02:56:17.934535" 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-10-15T02:56:17.934054" elapsed="0.000505"/>
</kw>
<return>
<value>${encoded}</value>
<status status="PASS" start="2026-10-15T02:56:17.934606" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T02:56:17.934735" 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-10-15T02:56:17.933702" elapsed="0.001064"/>
</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-10-15T02:56:17.934949" elapsed="0.000910"/>
</kw>
<var name="${key}">NODE</var>
<var name="${value}">openflow:1</var>
<status status="PASS" start="2026-10-15T02:56:17.933058" elapsed="0.002841"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="PASS" start="2026-10-15T02:56:17.932892" elapsed="0.003038"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T02:56:17.935969" elapsed="0.000027"/>
</return>
<msg time="2026-10-15T02:56:17.936115" level="INFO">${mapping_to_use} = {'NODE': 'openflow%3A1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T02:56:17.931618" elapsed="0.004521"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.931327" elapsed="0.004891"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.936388" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.936241" elapsed="0.000198"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.931307" elapsed="0.005172"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.937122" 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-10-15T02:56:17.936632" elapsed="0.000517"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:17.937193" elapsed="0.000027"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:17.927981" elapsed="0.009315"/>
</kw>
<msg time="2026-10-15T02:56:17.937400" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:17.923942" elapsed="0.013536"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.941459" elapsed="0.000027"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.945281" elapsed="0.000024"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.949071" elapsed="0.000024"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.949247" elapsed="0.000020"/>
</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-10-15T02:56:17.949423" elapsed="0.000019"/>
</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-10-15T02:56:17.949776" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.949636" elapsed="0.000190"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:17.949623" elapsed="0.000224"/>
</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-10-15T02:56:17.949998" elapsed="0.000031"/>
</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-10-15T02:56:17.950187" elapsed="0.000017"/>
</kw>
<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-10-15T02:56:17.950344" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T02:56:17.949597" elapsed="0.000793"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T02:56:17.949509" elapsed="0.000904"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:17.950575" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:17.950641" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T02:56:17.950745" 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-10-15T02:56:17.923341" elapsed="0.027428"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:17.954477" elapsed="0.000332"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.959735" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.959404" elapsed="0.000357"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.960471" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2.manganese/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-10-15T02:56:17.960284" elapsed="0.000258">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2.manganese/post_data.prolog.json' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:17.960627" 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-10-15T02:56:17.959953" elapsed="0.000700"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.961176" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.960838" elapsed="0.000366"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.961522" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2/post_data.prolog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2/post_data.prolog.json&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:17.961658" 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-10-15T02:56:17.961382" elapsed="0.000300"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.962172" 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-10-15T02:56:17.961903" elapsed="0.000323"/>
</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-10-15T02:56:17.962579" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.962306" elapsed="0.000328"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.963142" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.962831" elapsed="0.000336"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.962667" elapsed="0.000545"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.962284" elapsed="0.000956"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.963840" 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-10-15T02:56:17.963417" elapsed="0.000450"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:17.963911" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:56:17.964053" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:17.958854" elapsed="0.005224"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.969271" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.968945" elapsed="0.000352"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.970067" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2.manganese/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-10-15T02:56:17.969844" elapsed="0.000304">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2.manganese/post_data.epilog.json' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:17.970242" 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-10-15T02:56:17.969490" elapsed="0.000784"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.970787" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.970466" elapsed="0.000347"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.971099" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2/post_data.epilog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2/post_data.epilog.json&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:17.971217" 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-10-15T02:56:17.970975" elapsed="0.000264"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.971697" level="INFO">  ]
}
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:56:17.971475" elapsed="0.000263"/>
</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-10-15T02:56:17.972053" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.971799" elapsed="0.000307"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.972547" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.972270" elapsed="0.000302"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.972129" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.971783" elapsed="0.000842"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.973160" 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-10-15T02:56:17.972778" elapsed="0.000406"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:17.973228" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:56:17.973351" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:17.968378" elapsed="0.004995"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.978117" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.977781" elapsed="0.000362"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.978874" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2.manganese/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-10-15T02:56:17.978676" elapsed="0.000259">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2.manganese/data.item.json' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:17.979034" 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-10-15T02:56:17.978311" elapsed="0.000754"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.979592" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:17.979250" elapsed="0.000370"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:17.979901" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2/data.item.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2/data.item.json&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:17.980044" 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-10-15T02:56:17.979783" elapsed="0.000287"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.980510" 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-10-15T02:56:17.980275" elapsed="0.000278"/>
</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-10-15T02:56:17.980850" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.980613" elapsed="0.000289"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.981338" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:17.981080" elapsed="0.000282"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.980925" elapsed="0.000468"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.980597" elapsed="0.000815"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.982147" 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-10-15T02:56:17.981582" elapsed="0.000593"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:17.982219" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:56:17.982360" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:17.977255" elapsed="0.005172"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.982866" level="INFO">${items} = []</msg>
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:56:17.982630" elapsed="0.000260"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.983404" 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-10-15T02:56:17.983076" elapsed="0.000357"/>
</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-10-15T02:56:17.984031" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:17.983796" elapsed="0.000290"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.983783" elapsed="0.000324"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.984578" 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-10-15T02:56:17.984258" elapsed="0.000345"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.985435" 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-10-15T02:56:17.984768" elapsed="0.000710"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.985634" elapsed="0.000149"/>
</kw>
<var name="${iteration}">1</var>
<status status="PASS" start="2026-10-15T02:56:17.983753" elapsed="0.002063"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.986190" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.985974" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.985961" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.986864" 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-10-15T02:56:17.986562" elapsed="0.000326"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.987622" 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-10-15T02:56:17.987065" elapsed="0.000584"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.987819" elapsed="0.000162"/>
</kw>
<var name="${iteration}">2</var>
<status status="PASS" start="2026-10-15T02:56:17.985933" elapsed="0.002097"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.988413" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.988194" elapsed="0.000436"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.988180" elapsed="0.000473"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.989210" 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-10-15T02:56:17.988830" elapsed="0.000406"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.989972" 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-10-15T02:56:17.989404" 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-10-15T02:56:17.990193" elapsed="0.000161"/>
</kw>
<var name="${iteration}">3</var>
<status status="PASS" start="2026-10-15T02:56:17.988152" 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-10-15T02:56:17.990837" elapsed="0.000149"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.990604" elapsed="0.000433"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.990590" elapsed="0.000471"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.991613" 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-10-15T02:56:17.991234" elapsed="0.000411"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.992340" 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-10-15T02:56:17.991814" elapsed="0.000556"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.992566" elapsed="0.000187"/>
</kw>
<var name="${iteration}">4</var>
<status status="PASS" start="2026-10-15T02:56:17.990557" 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-10-15T02:56:17.993191" elapsed="0.000162"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.992948" elapsed="0.000448"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.992934" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.993939" 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-10-15T02:56:17.993601" elapsed="0.000364"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.994740" 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-10-15T02:56:17.994161" 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-10-15T02:56:17.994936" elapsed="0.000188"/>
</kw>
<var name="${iteration}">5</var>
<status status="PASS" start="2026-10-15T02:56:17.992906" 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-10-15T02:56:17.995610" elapsed="0.000164"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.995353" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.995335" elapsed="0.000501"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.996370" 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-10-15T02:56:17.996006" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.997178" 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-10-15T02:56:17.996614" elapsed="0.000592"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:17.997357" elapsed="0.000159"/>
</kw>
<var name="${iteration}">6</var>
<status status="PASS" start="2026-10-15T02:56:17.995297" 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-10-15T02:56:17.997963" elapsed="0.000170"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:17.997721" elapsed="0.000447"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:17.997703" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.998754" 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-10-15T02:56:17.998390" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:17.999574" 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-10-15T02:56:17.998972" 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-10-15T02:56:17.999755" elapsed="0.000167"/>
</kw>
<var name="${iteration}">7</var>
<status status="PASS" start="2026-10-15T02:56:17.997675" elapsed="0.002289"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.000386" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.000159" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.000144" elapsed="0.000499"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.001267" 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-10-15T02:56:18.000801" elapsed="0.000498"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.002075" 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-10-15T02:56:18.001503" 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-10-15T02:56:18.002271" elapsed="0.000169"/>
</kw>
<var name="${iteration}">8</var>
<status status="PASS" start="2026-10-15T02:56:18.000107" elapsed="0.002385"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.002915" elapsed="0.000165"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.002702" elapsed="0.000413"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.002688" elapsed="0.000450"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.003616" 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-10-15T02:56:18.003292" elapsed="0.000350"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.004315" 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-10-15T02:56:18.003806" elapsed="0.000565"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.004542" elapsed="0.000168"/>
</kw>
<var name="${iteration}">9</var>
<status status="PASS" start="2026-10-15T02:56:18.002658" elapsed="0.002087"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.005137" elapsed="0.000161"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.004906" elapsed="0.000427"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.004892" elapsed="0.000463"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.005916" 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-10-15T02:56:18.005554" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.006677" 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-10-15T02:56:18.006152" elapsed="0.000552"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.006854" elapsed="0.000143"/>
</kw>
<var name="${iteration}">10</var>
<status status="PASS" start="2026-10-15T02:56:18.004865" elapsed="0.002179"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.007405" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.007207" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.007193" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.008092" 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-10-15T02:56:18.007774" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.008794" 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-10-15T02:56:18.008281" elapsed="0.000540"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.008971" elapsed="0.000155"/>
</kw>
<var name="${iteration}">11</var>
<status status="PASS" start="2026-10-15T02:56:18.007165" elapsed="0.001994"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.009532" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.009319" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.009305" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.010195" 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-10-15T02:56:18.009882" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.010890" 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-10-15T02:56:18.010381" elapsed="0.000535"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.011079" elapsed="0.000141"/>
</kw>
<var name="${iteration}">12</var>
<status status="PASS" start="2026-10-15T02:56:18.009278" elapsed="0.001975"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.011632" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.011414" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.011401" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.012295" 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-10-15T02:56:18.011981" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.012996" 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-10-15T02:56:18.012497" elapsed="0.000540"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.013189" elapsed="0.000141"/>
</kw>
<var name="${iteration}">13</var>
<status status="PASS" start="2026-10-15T02:56:18.011373" elapsed="0.001991"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.013739" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.013542" elapsed="0.000373"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.013528" elapsed="0.000409"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.014401" 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-10-15T02:56:18.014103" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.015157" 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-10-15T02:56:18.014643" elapsed="0.000541"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.015334" elapsed="0.000160"/>
</kw>
<var name="${iteration}">14</var>
<status status="PASS" start="2026-10-15T02:56:18.013499" elapsed="0.002030"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.015909" elapsed="0.000285"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.015691" elapsed="0.000540"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.015677" elapsed="0.000576"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.016742" 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-10-15T02:56:18.016409" elapsed="0.000364"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.017573" 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-10-15T02:56:18.016954" 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-10-15T02:56:18.017768" elapsed="0.000149"/>
</kw>
<var name="${iteration}">15</var>
<status status="PASS" start="2026-10-15T02:56:18.015649" 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-10-15T02:56:18.018330" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.018131" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.018118" elapsed="0.000428"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.019039" 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-10-15T02:56:18.018698" elapsed="0.000367"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.019839" 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-10-15T02:56:18.019263" 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-10-15T02:56:18.020049" elapsed="0.000175"/>
</kw>
<var name="${iteration}">16</var>
<status status="PASS" start="2026-10-15T02:56:18.018089" elapsed="0.002171"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.020699" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.020468" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.020437" elapsed="0.000478"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.021386" 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-10-15T02:56:18.021083" elapsed="0.000328"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.022102" 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-10-15T02:56:18.021590" elapsed="0.000538"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.022297" elapsed="0.000145"/>
</kw>
<var name="${iteration}">17</var>
<status status="PASS" start="2026-10-15T02:56:18.020398" elapsed="0.002094"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.022905" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.022682" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.022663" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.023697" 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-10-15T02:56:18.023343" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.024401" 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-10-15T02:56:18.023887" elapsed="0.000541"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.024594" elapsed="0.000143"/>
</kw>
<var name="${iteration}">18</var>
<status status="PASS" start="2026-10-15T02:56:18.022630" elapsed="0.002140"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.025140" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.024931" elapsed="0.000422"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.024916" elapsed="0.000460"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.025849" 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-10-15T02:56:18.025546" elapsed="0.000328"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.026563" 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-10-15T02:56:18.026051" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.026746" elapsed="0.000141"/>
</kw>
<var name="${iteration}">19</var>
<status status="PASS" start="2026-10-15T02:56:18.024888" elapsed="0.002032"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.027294" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.027097" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.027084" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.027964" 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-10-15T02:56:18.027664" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.028678" 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-10-15T02:56:18.028167" elapsed="0.000538"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.028853" elapsed="0.000141"/>
</kw>
<var name="${iteration}">20</var>
<status status="PASS" start="2026-10-15T02:56:18.027055" elapsed="0.001985"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.029404" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.029205" elapsed="0.000392"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.029192" elapsed="0.000427"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.030086" 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-10-15T02:56:18.029771" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.030808" 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-10-15T02:56:18.030274" elapsed="0.000561"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.030984" elapsed="0.000160"/>
</kw>
<var name="${iteration}">21</var>
<status status="PASS" start="2026-10-15T02:56:18.029163" elapsed="0.002014"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.031656" elapsed="0.000163"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.031436" elapsed="0.000419"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.031323" elapsed="0.000555"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.032373" 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-10-15T02:56:18.032045" elapsed="0.000357"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.033186" 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-10-15T02:56:18.032599" 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-10-15T02:56:18.033388" elapsed="0.000187"/>
</kw>
<var name="${iteration}">22</var>
<status status="PASS" start="2026-10-15T02:56:18.031295" elapsed="0.002320"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.033992" elapsed="0.000176"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.033777" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.033764" elapsed="0.000462"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.034740" 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-10-15T02:56:18.034405" elapsed="0.000360"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.035439" 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-10-15T02:56:18.034930" elapsed="0.000551"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.035664" elapsed="0.000144"/>
</kw>
<var name="${iteration}">23</var>
<status status="PASS" start="2026-10-15T02:56:18.033736" elapsed="0.002105"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.036209" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.036000" elapsed="0.000385"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.035987" elapsed="0.000420"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.036888" 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-10-15T02:56:18.036580" elapsed="0.000333"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.037602" 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-10-15T02:56:18.037088" elapsed="0.000541"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.038064" elapsed="0.000223"/>
</kw>
<var name="${iteration}">24</var>
<status status="PASS" start="2026-10-15T02:56:18.035959" 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-10-15T02:56:18.038861" elapsed="0.000176"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.038636" elapsed="0.000437"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.038615" elapsed="0.000480"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.039589" 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-10-15T02:56:18.039270" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.040325" 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-10-15T02:56:18.039776" elapsed="0.000576"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.040517" elapsed="0.000142"/>
</kw>
<var name="${iteration}">25</var>
<status status="PASS" start="2026-10-15T02:56:18.038583" elapsed="0.002109"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.041064" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.040851" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.040838" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.041730" 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-10-15T02:56:18.041412" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.042423" 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-10-15T02:56:18.041917" elapsed="0.000547"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.042617" elapsed="0.000144"/>
</kw>
<var name="${iteration}">26</var>
<status status="PASS" start="2026-10-15T02:56:18.040811" elapsed="0.001982"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.043165" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.042951" elapsed="0.000450"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.042938" elapsed="0.000485"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.043899" 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-10-15T02:56:18.043592" elapsed="0.000331"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.044612" 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-10-15T02:56:18.044100" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.044788" elapsed="0.000141"/>
</kw>
<var name="${iteration}">27</var>
<status status="PASS" start="2026-10-15T02:56:18.042910" elapsed="0.002052"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.045337" elapsed="0.000157"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.045138" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.045124" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.046006" 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-10-15T02:56:18.045708" elapsed="0.000336"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.046718" 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-10-15T02:56:18.046208" elapsed="0.000566"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.046928" elapsed="0.000158"/>
</kw>
<var name="${iteration}">28</var>
<status status="PASS" start="2026-10-15T02:56:18.045095" elapsed="0.002025"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.047598" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.047382" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.047369" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.048266" 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-10-15T02:56:18.047949" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.048964" 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-10-15T02:56:18.048470" elapsed="0.000520"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.049154" elapsed="0.000142"/>
</kw>
<var name="${iteration}">29</var>
<status status="PASS" start="2026-10-15T02:56:18.047340" elapsed="0.001988"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.049704" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.049503" elapsed="0.000375"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.049490" elapsed="0.000410"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.050364" 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-10-15T02:56:18.050065" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.051072" 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-10-15T02:56:18.050566" elapsed="0.000532"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.051246" elapsed="0.000140"/>
</kw>
<var name="${iteration}">30</var>
<status status="PASS" start="2026-10-15T02:56:18.049460" elapsed="0.001959"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.051792" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.051595" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.051582" elapsed="0.000407"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.052465" 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-10-15T02:56:18.052153" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.053159" 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-10-15T02:56:18.052653" elapsed="0.000532"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.053333" elapsed="0.000156"/>
</kw>
<var name="${iteration}">31</var>
<status status="PASS" start="2026-10-15T02:56:18.051554" elapsed="0.001968"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.053876" elapsed="0.000155"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.053679" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.053666" elapsed="0.000421"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.054551" 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-10-15T02:56:18.054238" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.055239" 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-10-15T02:56:18.054737" elapsed="0.000528"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.055412" elapsed="0.000156"/>
</kw>
<var name="${iteration}">32</var>
<status status="PASS" start="2026-10-15T02:56:18.053639" elapsed="0.001962"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.055954" elapsed="0.000154"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.055758" elapsed="0.000383"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.055745" elapsed="0.000418"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.056627" 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-10-15T02:56:18.056314" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.057359" 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-10-15T02:56:18.056848" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.057550" elapsed="0.000143"/>
</kw>
<var name="${iteration}">33</var>
<status status="PASS" start="2026-10-15T02:56:18.055717" elapsed="0.002009"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.058093" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.057885" elapsed="0.000385"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.057872" elapsed="0.000420"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.058762" 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-10-15T02:56:18.058445" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.059519" 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-10-15T02:56:18.058963" elapsed="0.000582"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.059696" elapsed="0.000141"/>
</kw>
<var name="${iteration}">34</var>
<status status="PASS" start="2026-10-15T02:56:18.057844" elapsed="0.002026"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.060244" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.060044" elapsed="0.000375"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.060030" elapsed="0.000410"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.060908" 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-10-15T02:56:18.060609" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.061728" 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-10-15T02:56:18.061110" 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-10-15T02:56:18.061911" elapsed="0.000157"/>
</kw>
<var name="${iteration}">35</var>
<status status="PASS" start="2026-10-15T02:56:18.059989" elapsed="0.002112"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.062471" elapsed="0.000145"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.062260" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.062247" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.063143" 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-10-15T02:56:18.062822" elapsed="0.000345"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.063841" 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-10-15T02:56:18.063331" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.064031" elapsed="0.000143"/>
</kw>
<var name="${iteration}">36</var>
<status status="PASS" start="2026-10-15T02:56:18.062219" elapsed="0.001988"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.064579" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.064366" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.064353" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.065242" 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-10-15T02:56:18.064928" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.065938" 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-10-15T02:56:18.065428" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.066126" elapsed="0.000141"/>
</kw>
<var name="${iteration}">37</var>
<status status="PASS" start="2026-10-15T02:56:18.064325" elapsed="0.001975"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.066674" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.066475" elapsed="0.000404"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.066444" elapsed="0.000459"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.067369" 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-10-15T02:56:18.067069" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.068432" 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-10-15T02:56:18.067572" elapsed="0.000914"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.068672" elapsed="0.000151"/>
</kw>
<var name="${iteration}">38</var>
<status status="PASS" start="2026-10-15T02:56:18.066416" elapsed="0.002441"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.069243" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.069036" elapsed="0.000382"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.069010" elapsed="0.000430"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.069957" 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-10-15T02:56:18.069615" elapsed="0.000366"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.070666" 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-10-15T02:56:18.070157" elapsed="0.000535"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.070842" elapsed="0.000141"/>
</kw>
<var name="${iteration}">39</var>
<status status="PASS" start="2026-10-15T02:56:18.068976" elapsed="0.002051"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.071386" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.071189" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.071175" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.072058" 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-10-15T02:56:18.071750" elapsed="0.000333"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.072750" 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-10-15T02:56:18.072245" elapsed="0.000532"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.072925" elapsed="0.000153"/>
</kw>
<var name="${iteration}">40</var>
<status status="PASS" start="2026-10-15T02:56:18.071147" elapsed="0.001965"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.073486" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.073273" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.073259" elapsed="0.000428"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.074154" 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-10-15T02:56:18.073839" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.074854" 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-10-15T02:56:18.074342" elapsed="0.000538"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.075041" elapsed="0.000142"/>
</kw>
<var name="${iteration}">41</var>
<status status="PASS" start="2026-10-15T02:56:18.073230" elapsed="0.001988"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.075591" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.075377" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.075364" elapsed="0.000440"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.076437" 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-10-15T02:56:18.075992" elapsed="0.000486"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.077191" 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-10-15T02:56:18.076644" elapsed="0.000575"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.077422" elapsed="0.000160"/>
</kw>
<var name="${iteration}">42</var>
<status status="PASS" start="2026-10-15T02:56:18.075336" 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-10-15T02:56:18.077981" elapsed="0.000154"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.077782" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.077768" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.078661" 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-10-15T02:56:18.078341" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.079356" 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-10-15T02:56:18.078848" elapsed="0.000534"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.079546" elapsed="0.000142"/>
</kw>
<var name="${iteration}">43</var>
<status status="PASS" start="2026-10-15T02:56:18.077741" elapsed="0.001980"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.080093" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.079881" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.079868" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.080765" 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-10-15T02:56:18.080444" elapsed="0.000346"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.081481" 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-10-15T02:56:18.080951" elapsed="0.000557"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.081658" elapsed="0.000141"/>
</kw>
<var name="${iteration}">44</var>
<status status="PASS" start="2026-10-15T02:56:18.079840" elapsed="0.001992"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.082204" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.081988" elapsed="0.000392"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.081975" elapsed="0.000427"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.082868" 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-10-15T02:56:18.082569" elapsed="0.000324"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.083580" 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-10-15T02:56:18.083069" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.083761" elapsed="0.000140"/>
</kw>
<var name="${iteration}">45</var>
<status status="PASS" start="2026-10-15T02:56:18.081948" elapsed="0.001986"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.084304" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.084108" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.084095" elapsed="0.000421"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.084972" 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-10-15T02:56:18.084673" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.085682" 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-10-15T02:56:18.085175" elapsed="0.000534"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.085858" elapsed="0.000139"/>
</kw>
<var name="${iteration}">46</var>
<status status="PASS" start="2026-10-15T02:56:18.084066" elapsed="0.001977"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.086400" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.086204" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.086190" elapsed="0.000427"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.087084" 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-10-15T02:56:18.086771" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.087785" 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-10-15T02:56:18.087271" elapsed="0.000572"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.087996" elapsed="0.000158"/>
</kw>
<var name="${iteration}">47</var>
<status status="PASS" start="2026-10-15T02:56:18.086162" elapsed="0.002025"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.088561" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.088347" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.088334" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.089232" 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-10-15T02:56:18.088913" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.089931" 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-10-15T02:56:18.089418" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.090120" elapsed="0.000143"/>
</kw>
<var name="${iteration}">48</var>
<status status="PASS" start="2026-10-15T02:56:18.088306" elapsed="0.001990"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.090676" elapsed="0.000246"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.090471" elapsed="0.000486"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.090442" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.091445" 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-10-15T02:56:18.091146" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.092153" 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-10-15T02:56:18.091648" elapsed="0.000531"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.092333" elapsed="0.000159"/>
</kw>
<var name="${iteration}">49</var>
<status status="PASS" start="2026-10-15T02:56:18.090414" elapsed="0.002111"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.092881" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.092683" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.092670" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.093564" 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-10-15T02:56:18.093247" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.094299" 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-10-15T02:56:18.093751" elapsed="0.000574"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.094504" elapsed="0.000162"/>
</kw>
<var name="${iteration}">50</var>
<status status="PASS" start="2026-10-15T02:56:18.092642" elapsed="0.002058"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.095129" elapsed="0.000147"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.094879" elapsed="0.000431"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.094866" elapsed="0.000466"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.095866" 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-10-15T02:56:18.095520" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.096686" 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-10-15T02:56:18.096112" 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-10-15T02:56:18.096879" elapsed="0.000163"/>
</kw>
<var name="${iteration}">51</var>
<status status="PASS" start="2026-10-15T02:56:18.094837" 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-10-15T02:56:18.097522" elapsed="0.000173"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.097279" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.097264" elapsed="0.000501"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.098245" 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-10-15T02:56:18.097920" elapsed="0.000349"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.098986" 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-10-15T02:56:18.098481" elapsed="0.000549"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.099182" elapsed="0.000141"/>
</kw>
<var name="${iteration}">52</var>
<status status="PASS" start="2026-10-15T02:56:18.097235" elapsed="0.002121"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.099734" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.099532" elapsed="0.000398"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.099518" elapsed="0.000434"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.100485" 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-10-15T02:56:18.100123" elapsed="0.000388"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.101298" 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-10-15T02:56:18.100705" 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-10-15T02:56:18.101492" elapsed="0.000144"/>
</kw>
<var name="${iteration}">53</var>
<status status="PASS" start="2026-10-15T02:56:18.099490" elapsed="0.002179"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.102038" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.101828" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.101814" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.102717" 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-10-15T02:56:18.102394" elapsed="0.000347"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.103417" 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-10-15T02:56:18.102901" elapsed="0.000542"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.103609" elapsed="0.000142"/>
</kw>
<var name="${iteration}">54</var>
<status status="PASS" start="2026-10-15T02:56:18.101787" elapsed="0.001998"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.104168" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.103957" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.103942" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.104840" 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-10-15T02:56:18.104539" elapsed="0.000326"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.105553" 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-10-15T02:56:18.105040" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.105734" elapsed="0.000142"/>
</kw>
<var name="${iteration}">55</var>
<status status="PASS" start="2026-10-15T02:56:18.103903" elapsed="0.002006"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.106384" elapsed="0.000157"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.106183" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.106068" elapsed="0.000530"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.107063" 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-10-15T02:56:18.106748" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.107765" 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-10-15T02:56:18.107251" elapsed="0.000540"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.107939" elapsed="0.000155"/>
</kw>
<var name="${iteration}">56</var>
<status status="PASS" start="2026-10-15T02:56:18.106040" elapsed="0.002087"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.108500" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.108288" elapsed="0.000423"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.108274" elapsed="0.000460"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.109209" 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-10-15T02:56:18.108888" elapsed="0.000346"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.109909" 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-10-15T02:56:18.109399" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.110099" elapsed="0.000141"/>
</kw>
<var name="${iteration}">57</var>
<status status="PASS" start="2026-10-15T02:56:18.108246" elapsed="0.002028"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.110645" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.110431" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.110418" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.111310" 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-10-15T02:56:18.110995" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.112047" 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-10-15T02:56:18.111537" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.112223" elapsed="0.000141"/>
</kw>
<var name="${iteration}">58</var>
<status status="PASS" start="2026-10-15T02:56:18.110391" elapsed="0.002005"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.112772" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.112574" elapsed="0.000373"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.112561" elapsed="0.000408"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.113440" 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-10-15T02:56:18.113139" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.114156" 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-10-15T02:56:18.113649" elapsed="0.000533"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.114331" elapsed="0.000157"/>
</kw>
<var name="${iteration}">59</var>
<status status="PASS" start="2026-10-15T02:56:18.112533" elapsed="0.001988"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.114876" elapsed="0.000153"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.114680" elapsed="0.000383"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.114666" elapsed="0.000419"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.115547" 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-10-15T02:56:18.115235" elapsed="0.000336"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.116246" 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-10-15T02:56:18.115739" elapsed="0.000533"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.116420" elapsed="0.000157"/>
</kw>
<var name="${iteration}">60</var>
<status status="PASS" start="2026-10-15T02:56:18.114638" elapsed="0.001972"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.116966" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.116769" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.116755" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.117648" 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-10-15T02:56:18.117331" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.118342" 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-10-15T02:56:18.117836" elapsed="0.000532"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.118567" elapsed="0.000149"/>
</kw>
<var name="${iteration}">61</var>
<status status="PASS" start="2026-10-15T02:56:18.116728" elapsed="0.002022"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.119119" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.118910" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.118896" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.119788" 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-10-15T02:56:18.119486" elapsed="0.000327"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.120502" 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-10-15T02:56:18.119976" elapsed="0.000553"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.120681" elapsed="0.000141"/>
</kw>
<var name="${iteration}">62</var>
<status status="PASS" start="2026-10-15T02:56:18.118869" elapsed="0.001986"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.121336" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.121136" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.121123" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.122010" 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-10-15T02:56:18.121710" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.122767" 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-10-15T02:56:18.122217" elapsed="0.000579"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.122946" elapsed="0.000156"/>
</kw>
<var name="${iteration}">63</var>
<status status="PASS" start="2026-10-15T02:56:18.121094" elapsed="0.002042"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.123508" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.123296" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.123282" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.124170" 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-10-15T02:56:18.123856" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.124872" 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-10-15T02:56:18.124356" elapsed="0.000543"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.125068" elapsed="0.000142"/>
</kw>
<var name="${iteration}">64</var>
<status status="PASS" start="2026-10-15T02:56:18.123254" elapsed="0.001989"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.125623" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.125408" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.125395" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.126283" 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-10-15T02:56:18.125968" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.126973" 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-10-15T02:56:18.126483" elapsed="0.000516"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.127166" elapsed="0.000143"/>
</kw>
<var name="${iteration}">65</var>
<status status="PASS" start="2026-10-15T02:56:18.125367" elapsed="0.001975"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.127723" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.127519" elapsed="0.000380"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.127504" elapsed="0.000417"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.128385" 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-10-15T02:56:18.128088" elapsed="0.000321"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.129096" 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-10-15T02:56:18.128588" elapsed="0.000563"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.129303" elapsed="0.000157"/>
</kw>
<var name="${iteration}">66</var>
<status status="PASS" start="2026-10-15T02:56:18.127474" elapsed="0.002022"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.129851" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.129654" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.129641" elapsed="0.000421"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.130532" 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-10-15T02:56:18.130214" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.131230" 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-10-15T02:56:18.130720" elapsed="0.000536"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.131407" elapsed="0.000158"/>
</kw>
<var name="${iteration}">67</var>
<status status="PASS" start="2026-10-15T02:56:18.129613" elapsed="0.001985"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.131955" elapsed="0.000157"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.131758" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.131745" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.132645" 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-10-15T02:56:18.132327" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.133341" 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-10-15T02:56:18.132833" elapsed="0.000535"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.133534" elapsed="0.000144"/>
</kw>
<var name="${iteration}">68</var>
<status status="PASS" start="2026-10-15T02:56:18.131717" elapsed="0.001994"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.134083" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.133871" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.133857" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.134747" 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-10-15T02:56:18.134432" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.135928" 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-10-15T02:56:18.134935" elapsed="0.001020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.136139" elapsed="0.000147"/>
</kw>
<var name="${iteration}">69</var>
<status status="PASS" start="2026-10-15T02:56:18.133829" elapsed="0.002490"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.136732" elapsed="0.000145"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.136515" elapsed="0.000396"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.136502" elapsed="0.000433"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.137494" 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-10-15T02:56:18.137133" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.138239" 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-10-15T02:56:18.137721" elapsed="0.000544"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.138414" elapsed="0.000161"/>
</kw>
<var name="${iteration}">70</var>
<status status="PASS" start="2026-10-15T02:56:18.136470" elapsed="0.002140"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.138966" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.138769" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.138756" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.139693" 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-10-15T02:56:18.139352" elapsed="0.000367"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.140549" 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-10-15T02:56:18.139951" 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-10-15T02:56:18.140737" elapsed="0.000147"/>
</kw>
<var name="${iteration}">71</var>
<status status="PASS" start="2026-10-15T02:56:18.138728" elapsed="0.002189"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.141289" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.141092" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.141079" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.141956" 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-10-15T02:56:18.141657" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.142697" 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-10-15T02:56:18.142156" elapsed="0.000576"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.142904" elapsed="0.000174"/>
</kw>
<var name="${iteration}">72</var>
<status status="PASS" start="2026-10-15T02:56:18.141049" elapsed="0.002072"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.143569" elapsed="0.000162"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.143307" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.143290" elapsed="0.000499"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.144368" 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-10-15T02:56:18.143957" elapsed="0.000449"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.145193" 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-10-15T02:56:18.144605" 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-10-15T02:56:18.145374" elapsed="0.000162"/>
</kw>
<var name="${iteration}">73</var>
<status status="PASS" start="2026-10-15T02:56:18.143252" 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-10-15T02:56:18.145966" elapsed="0.000171"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.145751" elapsed="0.000430"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.145738" elapsed="0.000466"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.146744" 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-10-15T02:56:18.146376" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.147516" 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-10-15T02:56:18.146962" elapsed="0.000581"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.147694" elapsed="0.000143"/>
</kw>
<var name="${iteration}">74</var>
<status status="PASS" start="2026-10-15T02:56:18.145708" elapsed="0.002162"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.148245" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.148045" elapsed="0.000377"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.148031" elapsed="0.000413"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.148914" 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-10-15T02:56:18.148612" elapsed="0.000326"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.149630" 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-10-15T02:56:18.149115" elapsed="0.000541"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.149806" elapsed="0.000142"/>
</kw>
<var name="${iteration}">75</var>
<status status="PASS" start="2026-10-15T02:56:18.147990" elapsed="0.001991"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.150356" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.150155" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.150141" elapsed="0.000464"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.151210" 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-10-15T02:56:18.150758" elapsed="0.000477"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.151955" 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-10-15T02:56:18.151415" elapsed="0.000567"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.152149" elapsed="0.000144"/>
</kw>
<var name="${iteration}">76</var>
<status status="PASS" start="2026-10-15T02:56:18.150113" elapsed="0.002214"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.152702" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.152504" elapsed="0.000376"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.152490" elapsed="0.000412"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.153367" 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-10-15T02:56:18.153066" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.154074" 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-10-15T02:56:18.153569" elapsed="0.000531"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.154276" elapsed="0.000154"/>
</kw>
<var name="${iteration}">77</var>
<status status="PASS" start="2026-10-15T02:56:18.152446" elapsed="0.002044"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.154914" elapsed="0.000166"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.154683" elapsed="0.000432"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.154663" elapsed="0.000474"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.155609" 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-10-15T02:56:18.155290" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.156308" 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-10-15T02:56:18.155794" elapsed="0.000541"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.156499" elapsed="0.000143"/>
</kw>
<var name="${iteration}">78</var>
<status status="PASS" start="2026-10-15T02:56:18.154627" elapsed="0.002049"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.157046" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.156836" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.156823" elapsed="0.000421"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.157714" 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-10-15T02:56:18.157395" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.158416" 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-10-15T02:56:18.157902" elapsed="0.000540"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.158613" elapsed="0.000142"/>
</kw>
<var name="${iteration}">79</var>
<status status="PASS" start="2026-10-15T02:56:18.156794" elapsed="0.001994"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.159167" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.158947" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.158934" elapsed="0.000430"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.159838" 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-10-15T02:56:18.159538" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.160548" 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-10-15T02:56:18.160042" elapsed="0.000533"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.160756" elapsed="0.000143"/>
</kw>
<var name="${iteration}">80</var>
<status status="PASS" start="2026-10-15T02:56:18.158906" elapsed="0.002026"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.161305" elapsed="0.000157"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.161108" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.161094" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.161979" 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-10-15T02:56:18.161672" elapsed="0.000331"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.162693" 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-10-15T02:56:18.162181" elapsed="0.000539"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.162870" elapsed="0.000156"/>
</kw>
<var name="${iteration}">81</var>
<status status="PASS" start="2026-10-15T02:56:18.161066" elapsed="0.001994"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.163422" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.163224" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.163211" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.164103" 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-10-15T02:56:18.163788" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.164804" 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-10-15T02:56:18.164290" elapsed="0.000541"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.164981" elapsed="0.000156"/>
</kw>
<var name="${iteration}">82</var>
<status status="PASS" start="2026-10-15T02:56:18.163183" elapsed="0.001987"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.165550" elapsed="0.000251"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.165337" elapsed="0.000499"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.165324" elapsed="0.000534"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.166330" 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-10-15T02:56:18.166012" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.167047" 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-10-15T02:56:18.166533" elapsed="0.000541"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.167223" elapsed="0.000142"/>
</kw>
<var name="${iteration}">83</var>
<status status="PASS" start="2026-10-15T02:56:18.165296" elapsed="0.002101"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.167773" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.167576" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.167563" elapsed="0.000407"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.168437" 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-10-15T02:56:18.168137" elapsed="0.000345"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.169157" 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-10-15T02:56:18.168650" elapsed="0.000533"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.169330" elapsed="0.000157"/>
</kw>
<var name="${iteration}">84</var>
<status status="PASS" start="2026-10-15T02:56:18.167535" elapsed="0.001985"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.169876" elapsed="0.000153"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.169681" elapsed="0.000382"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.169667" elapsed="0.000418"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.170561" 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-10-15T02:56:18.170246" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.171250" 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-10-15T02:56:18.170747" elapsed="0.000560"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.171474" elapsed="0.000144"/>
</kw>
<var name="${iteration}">85</var>
<status status="PASS" start="2026-10-15T02:56:18.169639" elapsed="0.002012"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.172010" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.171812" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.171798" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.172693" 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-10-15T02:56:18.172375" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.173403" 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-10-15T02:56:18.172881" elapsed="0.000548"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.173595" elapsed="0.000142"/>
</kw>
<var name="${iteration}">86</var>
<status status="PASS" start="2026-10-15T02:56:18.171770" elapsed="0.002000"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.174147" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.173932" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.173918" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.174811" 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-10-15T02:56:18.174510" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.175522" 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-10-15T02:56:18.174997" elapsed="0.000551"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.175695" elapsed="0.000140"/>
</kw>
<var name="${iteration}">87</var>
<status status="PASS" start="2026-10-15T02:56:18.173890" elapsed="0.001977"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.176249" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.176038" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.176011" elapsed="0.000434"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.176910" 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-10-15T02:56:18.176612" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.177617" 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-10-15T02:56:18.177108" elapsed="0.000535"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.177791" elapsed="0.000140"/>
</kw>
<var name="${iteration}">88</var>
<status status="PASS" start="2026-10-15T02:56:18.175983" elapsed="0.001981"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.178336" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.178134" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.178121" elapsed="0.000430"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.179004" 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-10-15T02:56:18.178704" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.179715" 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-10-15T02:56:18.179204" elapsed="0.000538"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.179892" elapsed="0.000334"/>
</kw>
<var name="${iteration}">89</var>
<status status="PASS" start="2026-10-15T02:56:18.178093" 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-10-15T02:56:18.180916" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.180674" elapsed="0.000468"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.180532" elapsed="0.000640"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.181714" 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-10-15T02:56:18.181344" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.182519" 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-10-15T02:56:18.181969" elapsed="0.000576"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.182698" elapsed="0.000141"/>
</kw>
<var name="${iteration}">90</var>
<status status="PASS" start="2026-10-15T02:56:18.180495" elapsed="0.002377"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.183246" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.183047" elapsed="0.000374"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.183032" elapsed="0.000410"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.183931" 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-10-15T02:56:18.183612" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.184755" 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-10-15T02:56:18.184166" 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-10-15T02:56:18.184937" elapsed="0.000158"/>
</kw>
<var name="${iteration}">91</var>
<status status="PASS" start="2026-10-15T02:56:18.182989" elapsed="0.002139"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.185501" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.185286" elapsed="0.000392"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.185273" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.186164" 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-10-15T02:56:18.185851" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.186871" 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-10-15T02:56:18.186351" elapsed="0.000547"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.187060" elapsed="0.000143"/>
</kw>
<var name="${iteration}">92</var>
<status status="PASS" start="2026-10-15T02:56:18.185245" elapsed="0.001991"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.187610" elapsed="0.000145"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.187394" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.187381" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.188283" 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-10-15T02:56:18.187966" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.188980" 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-10-15T02:56:18.188487" elapsed="0.000520"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.189173" elapsed="0.000141"/>
</kw>
<var name="${iteration}">93</var>
<status status="PASS" start="2026-10-15T02:56:18.187354" elapsed="0.001992"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.189718" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.189521" elapsed="0.000371"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.189508" elapsed="0.000407"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.190384" 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-10-15T02:56:18.190086" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.191124" 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-10-15T02:56:18.190586" elapsed="0.000565"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.191319" elapsed="0.000160"/>
</kw>
<var name="${iteration}">94</var>
<status status="PASS" start="2026-10-15T02:56:18.189479" elapsed="0.002034"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.191888" elapsed="0.000176"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.191673" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.191660" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.192651" 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-10-15T02:56:18.192328" elapsed="0.000347"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.193461" 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-10-15T02:56:18.192858" 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-10-15T02:56:18.193679" elapsed="0.000165"/>
</kw>
<var name="${iteration}">95</var>
<status status="PASS" start="2026-10-15T02:56:18.191632" 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-10-15T02:56:18.194317" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.194087" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.194072" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.195102" 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-10-15T02:56:18.194743" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.195921" 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-10-15T02:56:18.195323" 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-10-15T02:56:18.196132" elapsed="0.000148"/>
</kw>
<var name="${iteration}">96</var>
<status status="PASS" start="2026-10-15T02:56:18.194034" elapsed="0.002281"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.196796" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.196596" elapsed="0.000376"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.196583" elapsed="0.000410"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.197476" 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-10-15T02:56:18.197160" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.198269" 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-10-15T02:56:18.197686" 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-10-15T02:56:18.198509" elapsed="0.000162"/>
</kw>
<var name="${iteration}">97</var>
<status status="PASS" start="2026-10-15T02:56:18.196554" elapsed="0.002152"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.199083" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.198868" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.198855" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.199768" 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-10-15T02:56:18.199438" elapsed="0.000361"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.200579" 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-10-15T02:56:18.199981" 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-10-15T02:56:18.200785" elapsed="0.000162"/>
</kw>
<var name="${iteration}">98</var>
<status status="PASS" start="2026-10-15T02:56:18.198827" elapsed="0.002163"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.201384" elapsed="0.000165"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.201183" elapsed="0.000406"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.201169" elapsed="0.000452"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.202142" 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-10-15T02:56:18.201777" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.202959" 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-10-15T02:56:18.202360" 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-10-15T02:56:18.203204" elapsed="0.000168"/>
</kw>
<var name="${iteration}">99</var>
<status status="PASS" start="2026-10-15T02:56:18.201139" 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-10-15T02:56:18.203845" elapsed="0.000166"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.203614" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.203594" elapsed="0.000499"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.204567" 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-10-15T02:56:18.204247" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.205262" 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-10-15T02:56:18.204755" elapsed="0.000533"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.205437" elapsed="0.000158"/>
</kw>
<var name="${iteration}">100</var>
<status status="PASS" start="2026-10-15T02:56:18.203560" elapsed="0.002067"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="PASS" start="2026-10-15T02:56:17.983501" elapsed="0.222154"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.206740" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="PASS" start="2026-10-15T02:56:18.205809" elapsed="0.000958"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:18.206817" elapsed="0.000030"/>
</return>
<msg time="2026-10-15T02:56:18.206947" 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-10-15T02:56:17.953686" elapsed="0.253285"/>
</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-10-15T02:56:18.208127" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:18.207898" elapsed="0.000300">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-group-2/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:18.208282" 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-10-15T02:56:18.207585" elapsed="0.000719"/>
</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-10-15T02:56:18.208599" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.208365" elapsed="0.000286"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.209121" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:18.208850" elapsed="0.000295"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.208673" elapsed="0.000504"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.208349" elapsed="0.000848"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.209700" 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-10-15T02:56:18.209351" elapsed="0.000372"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T02:56:18.209768" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:56:18.209891" 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-manganese/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-10-15T02:56:18.207264" elapsed="0.002649"/>
</kw>
<kw name="Post_To_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.211384" 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-10-15T02:56:18.211007" elapsed="0.000419"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.211859" 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-10-15T02:56:18.211627" elapsed="0.000689"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.212817" 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-10-15T02:56:18.212552" elapsed="0.000318"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.213324" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:56:18.213101" elapsed="0.000271"/>
</kw>
<kw name="Join_Two_Headers" owner="TemplatedRequests">
<kw name="Copy Dictionary" owner="Collections">
<msg time="2026-10-15T02:56:18.214208" 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-10-15T02:56:18.213984" elapsed="0.000254"/>
</kw>
<kw name="Get Dictionary Items" owner="Collections">
<msg time="2026-10-15T02:56:18.214594" 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-10-15T02:56:18.214412" elapsed="0.000207"/>
</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-10-15T02:56:18.214777" elapsed="0.000150"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.215374" 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-10-15T02:56:18.215148" elapsed="0.000280"/>
</kw>
<return>
<value>${accumulator}</value>
<status status="PASS" start="2026-10-15T02:56:18.215488" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T02:56:18.215618" 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-10-15T02:56:18.213591" elapsed="0.002050"/>
</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-10-15T02:56:18.220550" level="INFO">POST Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '42507', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
  "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,
                "... (set the log level to DEBUG or TRACE to see the full content) 
 </msg>
<msg time="2026-10-15T02:56:18.220712" level="INFO">POST Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '420'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:18.220808" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:18.215935" elapsed="0.005248">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</kw>
<status status="FAIL" start="2026-10-15T02:56:18.215703" elapsed="0.005557">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:18.221438" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.221290" elapsed="0.000225"/>
</branch>
<status status="FAIL" start="2026-10-15T02:56:18.215688" elapsed="0.005849">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:18.221860" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.221984" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:56:18.221950" elapsed="0.000090"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:18.221934" elapsed="0.000127"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:18.222196" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.222257" elapsed="0.000014"/>
</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-10-15T02:56:18.210224" elapsed="0.012126">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.222418" elapsed="0.000014"/>
</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-10-15T02:56:17.919607" elapsed="0.302912">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:18.222785" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.222619" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:18.222604" elapsed="0.000262"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.222895" elapsed="0.000014"/>
</return>
<arg>folder=${VAR_DIR}/add-group-2</arg>
<arg>mapping=${mapping}</arg>
<arg>session=session</arg>
<arg>iterations=${iter}</arg>
<doc>Add arguments sensible for JSON data, return Post_Templated response text.
Optionally, verification against response.json (no iteration) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.
Response status code must be one of values from ${explicit_status_codes} if specified or one of set
created from all positive HTTP status codes together with ${additional_allowed_status_codes}.</doc>
<status status="FAIL" start="2026-10-15T02:56:17.918945" elapsed="0.304037">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:17.914735" elapsed="0.308322">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:17.914553" elapsed="0.308553">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</status>
</for>
<doc>Add 100 groups of type 2 in every switch.</doc>
<status status="FAIL" start="2026-10-15T02:56:17.914246" elapsed="0.308995">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</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-10-15T02:56:18.224524" 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-10-15T02:56:18.224143" elapsed="0.000408"/>
</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-10-15T02:56:18.237798" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:18.237489" elapsed="0.000335"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:18.238508" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow.manganese/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-10-15T02:56:18.238312" elapsed="0.000254">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:18.238656" 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-10-15T02:56:18.237979" elapsed="0.000700"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.239169" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:18.238847" elapsed="0.000348"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:18.239483" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:18.239617" 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-10-15T02:56:18.239355" elapsed="0.000286"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.240067" 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-10-15T02:56:18.239828" elapsed="0.000282"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.241002" 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-10-15T02:56:18.240772" elapsed="0.000285"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.241491" 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-10-15T02:56:18.241228" elapsed="0.000287"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.242110" 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-10-15T02:56:18.241825" elapsed="0.000309"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<kw name="Replace String Using Regexp" owner="String">
<msg time="2026-10-15T02:56:18.243048" 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-10-15T02:56:18.242615" elapsed="0.000458"/>
</kw>
<return>
<value>${encoded}</value>
<status status="PASS" start="2026-10-15T02:56:18.243129" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T02:56:18.243270" 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-10-15T02:56:18.242296" elapsed="0.000997"/>
</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-10-15T02:56:18.243480" elapsed="0.000330"/>
</kw>
<var name="${key}">NODE</var>
<var name="${value}">openflow:1</var>
<status status="PASS" start="2026-10-15T02:56:18.241699" elapsed="0.002151"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="PASS" start="2026-10-15T02:56:18.241557" elapsed="0.002336"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T02:56:18.243941" elapsed="0.000033"/>
</return>
<msg time="2026-10-15T02:56:18.244108" level="INFO">${mapping_to_use} = {'NODE': 'openflow%3A1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T02:56:18.240414" elapsed="0.003718"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.240170" elapsed="0.003992"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:18.244358" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.244184" elapsed="0.000227"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.240154" elapsed="0.004278"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.245169" 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-10-15T02:56:18.244634" elapsed="0.000562"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:18.245239" elapsed="0.000035"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:18.236962" elapsed="0.008397"/>
</kw>
<msg time="2026-10-15T02:56:18.245483" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:18.232942" elapsed="0.012597"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:18.249633" elapsed="0.000026"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:18.253812" elapsed="0.000026"/>
</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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:18.257564" elapsed="0.000024"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:18.257738" elapsed="0.000019"/>
</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-10-15T02:56:18.257911" elapsed="0.000018"/>
</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-10-15T02:56:18.258254" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.258117" elapsed="0.000186"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:18.258104" elapsed="0.000221"/>
</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-10-15T02:56:18.258486" elapsed="0.000019"/>
</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-10-15T02:56:18.258657" elapsed="0.000018"/>
</kw>
<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-10-15T02:56:18.258812" elapsed="0.000017"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T02:56:18.258077" elapsed="0.000781"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.257975" elapsed="0.000905"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:18.259037" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.259104" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T02:56:18.259210" 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-10-15T02:56:18.232338" elapsed="0.026895"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:18.262775" elapsed="0.000315"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.267723" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:18.267402" elapsed="0.000347"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:18.268399" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow.manganese/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-10-15T02:56:18.268230" elapsed="0.000243">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow.manganese/post_data.prolog.json' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:18.268557" 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-10-15T02:56:18.267898" elapsed="0.000682"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.269122" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:18.268751" elapsed="0.000406"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:18.269476" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow/post_data.prolog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow/post_data.prolog.json&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:18.269605" 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-10-15T02:56:18.269331" elapsed="0.000309"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.270153" level="INFO">{
  "flow": [
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:56:18.269859" elapsed="0.000340"/>
</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-10-15T02:56:18.270549" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.270262" elapsed="0.000350"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.271094" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:18.270799" elapsed="0.000320"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.270644" elapsed="0.000508"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.270243" elapsed="0.000928"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.271776" 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-10-15T02:56:18.271344" elapsed="0.000458"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:18.271848" elapsed="0.000037"/>
</return>
<msg time="2026-10-15T02:56:18.272000" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:18.266897" elapsed="0.005149"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.277124" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:18.276799" elapsed="0.000351"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:18.277853" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow.manganese/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-10-15T02:56:18.277660" elapsed="0.000261">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow.manganese/post_data.epilog.json' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:18.278033" 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-10-15T02:56:18.277300" elapsed="0.000763"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.278600" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:18.278245" elapsed="0.000381"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:18.278922" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow/post_data.epilog.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow/post_data.epilog.json&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:18.279107" 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-10-15T02:56:18.278805" elapsed="0.000334"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.279628" level="INFO">  ]
}
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:56:18.279347" elapsed="0.000330"/>
</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-10-15T02:56:18.279994" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.279740" elapsed="0.000327"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.280509" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:18.280230" elapsed="0.000304"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.280089" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.279723" elapsed="0.000863"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.281130" 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-10-15T02:56:18.280739" elapsed="0.000415"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:18.281203" elapsed="0.000038"/>
</return>
<msg time="2026-10-15T02:56:18.281346" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:18.276251" elapsed="0.005118"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.286356" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:18.286055" elapsed="0.000326"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:56:18.287123" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow.manganese/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-10-15T02:56:18.286914" elapsed="0.000269">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow.manganese/data.item.json' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:18.287284" 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-10-15T02:56:18.286583" elapsed="0.000727"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.287863" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:18.287521" elapsed="0.000377"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:56:18.288209" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow/data.item.json"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow/data.item.json&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:56:18.288329" 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-10-15T02:56:18.288095" elapsed="0.000259"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.288782" 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-10-15T02:56:18.288565" elapsed="0.000263"/>
</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-10-15T02:56:18.289147" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.288888" elapsed="0.000311"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.289636" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:18.289360" elapsed="0.000300"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.289221" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.288871" elapsed="0.000840"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.290465" 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-10-15T02:56:18.289894" elapsed="0.000599"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:18.290537" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:56:18.290662" 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-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:56:18.285565" elapsed="0.005121"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.291077" level="INFO">${items} = []</msg>
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:56:18.290834" elapsed="0.000266"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.291587" 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-10-15T02:56:18.291261" elapsed="0.000350"/>
</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-10-15T02:56:18.292124" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.291910" elapsed="0.000268"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.291898" elapsed="0.000301"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.292666" 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-10-15T02:56:18.292349" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.293559" 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-10-15T02:56:18.292851" elapsed="0.000735"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.293738" elapsed="0.000149"/>
</kw>
<var name="${iteration}">1</var>
<status status="PASS" start="2026-10-15T02:56:18.291869" elapsed="0.002052"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.294297" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.294099" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.294086" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.294967" 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-10-15T02:56:18.294669" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.296041" 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-10-15T02:56:18.295408" 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-10-15T02:56:18.296217" elapsed="0.000152"/>
</kw>
<var name="${iteration}">2</var>
<status status="PASS" start="2026-10-15T02:56:18.294057" 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-10-15T02:56:18.296778" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.296579" elapsed="0.000374"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.296566" elapsed="0.000408"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.297489" 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-10-15T02:56:18.297170" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.298208" 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-10-15T02:56:18.297678" elapsed="0.000556"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.298384" elapsed="0.000157"/>
</kw>
<var name="${iteration}">3</var>
<status status="PASS" start="2026-10-15T02:56:18.296538" elapsed="0.002037"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.298928" elapsed="0.000161"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.298733" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.298720" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.299684" 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-10-15T02:56:18.299364" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.300416" 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-10-15T02:56:18.299870" elapsed="0.000572"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.300613" elapsed="0.000142"/>
</kw>
<var name="${iteration}">4</var>
<status status="PASS" start="2026-10-15T02:56:18.298693" elapsed="0.002095"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.301171" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.300948" elapsed="0.000400"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.300935" elapsed="0.000434"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.301846" 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-10-15T02:56:18.301544" elapsed="0.000326"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.302581" 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-10-15T02:56:18.302049" elapsed="0.000558"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.302756" elapsed="0.000141"/>
</kw>
<var name="${iteration}">5</var>
<status status="PASS" start="2026-10-15T02:56:18.300907" elapsed="0.002023"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.303301" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.303106" elapsed="0.000385"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.303093" elapsed="0.000420"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.303959" 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-10-15T02:56:18.303664" elapsed="0.000319"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.304699" 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-10-15T02:56:18.304161" elapsed="0.000565"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.304872" elapsed="0.000156"/>
</kw>
<var name="${iteration}">6</var>
<status status="PASS" start="2026-10-15T02:56:18.303064" elapsed="0.002000"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.305431" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.305232" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.305218" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.306116" 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-10-15T02:56:18.305799" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.306911" 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-10-15T02:56:18.306303" 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-10-15T02:56:18.307126" elapsed="0.000161"/>
</kw>
<var name="${iteration}">7</var>
<status status="PASS" start="2026-10-15T02:56:18.305190" elapsed="0.002140"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.307785" elapsed="0.000164"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.307545" elapsed="0.000442"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.307525" elapsed="0.000485"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.308690" 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-10-15T02:56:18.308208" elapsed="0.000515"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.309536" 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-10-15T02:56:18.308907" 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-10-15T02:56:18.309714" elapsed="0.000141"/>
</kw>
<var name="${iteration}">8</var>
<status status="PASS" start="2026-10-15T02:56:18.307493" elapsed="0.002396"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.310296" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.310097" elapsed="0.000390"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.310083" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.310961" 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-10-15T02:56:18.310662" elapsed="0.000324"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.311696" 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-10-15T02:56:18.311164" elapsed="0.000559"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.311873" elapsed="0.000156"/>
</kw>
<var name="${iteration}">9</var>
<status status="PASS" start="2026-10-15T02:56:18.310054" elapsed="0.002009"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.312418" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.312223" elapsed="0.000385"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.312210" elapsed="0.000420"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.313097" 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-10-15T02:56:18.312780" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.313829" 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-10-15T02:56:18.313284" elapsed="0.000571"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.314003" elapsed="0.000158"/>
</kw>
<var name="${iteration}">10</var>
<status status="PASS" start="2026-10-15T02:56:18.312182" elapsed="0.002013"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.314562" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.314352" elapsed="0.000385"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.314339" elapsed="0.000419"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.315224" 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-10-15T02:56:18.314908" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.315950" 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-10-15T02:56:18.315410" elapsed="0.000566"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.316141" elapsed="0.000140"/>
</kw>
<var name="${iteration}">11</var>
<status status="PASS" start="2026-10-15T02:56:18.314312" elapsed="0.002003"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.316700" elapsed="0.000146"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.316491" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.316476" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.317411" 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-10-15T02:56:18.317090" elapsed="0.000347"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.318262" 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-10-15T02:56:18.317633" 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-10-15T02:56:18.318488" elapsed="0.000170"/>
</kw>
<var name="${iteration}">12</var>
<status status="PASS" start="2026-10-15T02:56:18.316433" 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-10-15T02:56:18.319117" elapsed="0.000154"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.318871" elapsed="0.000446"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.318858" elapsed="0.000484"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.319900" 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-10-15T02:56:18.319551" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.320699" 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-10-15T02:56:18.320134" elapsed="0.000591"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.320911" elapsed="0.000164"/>
</kw>
<var name="${iteration}">13</var>
<status status="PASS" start="2026-10-15T02:56:18.318828" elapsed="0.002282"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.321480" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.321269" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.321256" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.322146" 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-10-15T02:56:18.321829" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.322878" 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-10-15T02:56:18.322333" elapsed="0.000572"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.323073" elapsed="0.000141"/>
</kw>
<var name="${iteration}">14</var>
<status status="PASS" start="2026-10-15T02:56:18.321228" elapsed="0.002020"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.323622" elapsed="0.000242"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.323408" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.323395" elapsed="0.000527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.324391" 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-10-15T02:56:18.324090" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.325152" 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-10-15T02:56:18.324594" elapsed="0.000585"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.325350" elapsed="0.000178"/>
</kw>
<var name="${iteration}">15</var>
<status status="PASS" start="2026-10-15T02:56:18.323367" elapsed="0.002197"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.325983" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.325741" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.325727" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.326730" 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-10-15T02:56:18.326403" elapsed="0.000352"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.327476" 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-10-15T02:56:18.326916" elapsed="0.000587"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.327654" elapsed="0.000141"/>
</kw>
<var name="${iteration}">16</var>
<status status="PASS" start="2026-10-15T02:56:18.325689" elapsed="0.002139"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.328227" elapsed="0.000146"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.327986" elapsed="0.000421"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.327973" elapsed="0.000456"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.328961" 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-10-15T02:56:18.328615" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.329805" 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-10-15T02:56:18.329202" 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-10-15T02:56:18.329982" elapsed="0.000211"/>
</kw>
<var name="${iteration}">17</var>
<status status="PASS" start="2026-10-15T02:56:18.327945" 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-10-15T02:56:18.330656" elapsed="0.000166"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.330416" elapsed="0.000444"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.330402" elapsed="0.000490"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.331373" 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-10-15T02:56:18.331070" elapsed="0.000327"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.332180" 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-10-15T02:56:18.331607" 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-10-15T02:56:18.332376" elapsed="0.000188"/>
</kw>
<var name="${iteration}">18</var>
<status status="PASS" start="2026-10-15T02:56:18.330370" 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-10-15T02:56:18.333044" elapsed="0.000148"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.332803" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.332784" elapsed="0.000472"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.333807" 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-10-15T02:56:18.333431" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.334627" 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-10-15T02:56:18.334032" 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-10-15T02:56:18.334803" elapsed="0.000141"/>
</kw>
<var name="${iteration}">19</var>
<status status="PASS" start="2026-10-15T02:56:18.332745" 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-10-15T02:56:18.335376" elapsed="0.000171"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.335170" elapsed="0.000414"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.335150" elapsed="0.000457"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.336151" 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-10-15T02:56:18.335774" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.336922" 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-10-15T02:56:18.336361" elapsed="0.000587"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.337115" elapsed="0.000142"/>
</kw>
<var name="${iteration}">20</var>
<status status="PASS" start="2026-10-15T02:56:18.335114" elapsed="0.002176"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.337674" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.337474" elapsed="0.000376"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.337445" elapsed="0.000428"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.338341" 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-10-15T02:56:18.338039" elapsed="0.000326"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.339086" 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-10-15T02:56:18.338544" elapsed="0.000569"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.339261" elapsed="0.000140"/>
</kw>
<var name="${iteration}">21</var>
<status status="PASS" start="2026-10-15T02:56:18.337416" elapsed="0.002017"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.340553" elapsed="0.000146"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.340296" elapsed="0.000438"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.339606" elapsed="0.001150"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.341253" 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-10-15T02:56:18.340908" elapsed="0.000369"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.341975" 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-10-15T02:56:18.341440" elapsed="0.000561"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.342167" elapsed="0.000141"/>
</kw>
<var name="${iteration}">22</var>
<status status="PASS" start="2026-10-15T02:56:18.339577" elapsed="0.002764"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.342718" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.342515" elapsed="0.000408"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.342502" elapsed="0.000446"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.343419" 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-10-15T02:56:18.343119" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.344185" 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-10-15T02:56:18.343624" elapsed="0.000587"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.344378" elapsed="0.000177"/>
</kw>
<var name="${iteration}">23</var>
<status status="PASS" start="2026-10-15T02:56:18.342473" elapsed="0.002117"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.345009" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.344781" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.344767" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.345765" 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-10-15T02:56:18.345427" elapsed="0.000364"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.346563" 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-10-15T02:56:18.345957" 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-10-15T02:56:18.346757" elapsed="0.000147"/>
</kw>
<var name="${iteration}">24</var>
<status status="PASS" start="2026-10-15T02:56:18.344731" 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-10-15T02:56:18.347353" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.347120" elapsed="0.000454"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.347106" elapsed="0.000489"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.348078" 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-10-15T02:56:18.347754" elapsed="0.000348"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.348844" 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-10-15T02:56:18.348266" 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-10-15T02:56:18.349040" elapsed="0.000143"/>
</kw>
<var name="${iteration}">25</var>
<status status="PASS" start="2026-10-15T02:56:18.347077" elapsed="0.002140"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.349612" elapsed="0.000151"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.349393" elapsed="0.000413"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.349377" elapsed="0.000452"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.350353" 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-10-15T02:56:18.349998" elapsed="0.000383"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.351152" 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-10-15T02:56:18.350574" elapsed="0.000605"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.351329" elapsed="0.000174"/>
</kw>
<var name="${iteration}">26</var>
<status status="PASS" start="2026-10-15T02:56:18.349339" elapsed="0.002199"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.351936" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.351721" elapsed="0.000442"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.351708" elapsed="0.000482"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.352752" 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-10-15T02:56:18.352355" elapsed="0.000423"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.353593" 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-10-15T02:56:18.352972" 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-10-15T02:56:18.353769" elapsed="0.000140"/>
</kw>
<var name="${iteration}">27</var>
<status status="PASS" start="2026-10-15T02:56:18.351679" elapsed="0.002293"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.354360" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.354155" elapsed="0.000398"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.354142" elapsed="0.000433"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.355046" 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-10-15T02:56:18.354727" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.355771" 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-10-15T02:56:18.355234" elapsed="0.000563"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.355946" elapsed="0.000158"/>
</kw>
<var name="${iteration}">28</var>
<status status="PASS" start="2026-10-15T02:56:18.354113" elapsed="0.002025"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.356617" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.356400" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.356387" elapsed="0.000430"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.357288" 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-10-15T02:56:18.356968" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.358030" 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-10-15T02:56:18.357490" elapsed="0.000568"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.358207" elapsed="0.000141"/>
</kw>
<var name="${iteration}">29</var>
<status status="PASS" start="2026-10-15T02:56:18.356358" elapsed="0.002023"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.358759" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.358558" elapsed="0.000376"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.358545" elapsed="0.000410"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.359423" 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-10-15T02:56:18.359124" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.360159" 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-10-15T02:56:18.359627" elapsed="0.000558"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.360334" elapsed="0.000156"/>
</kw>
<var name="${iteration}">30</var>
<status status="PASS" start="2026-10-15T02:56:18.358516" elapsed="0.002008"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.360887" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.360684" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.360671" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.361566" 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-10-15T02:56:18.361251" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.362285" 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-10-15T02:56:18.361753" elapsed="0.000559"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.362477" elapsed="0.000141"/>
</kw>
<var name="${iteration}">31</var>
<status status="PASS" start="2026-10-15T02:56:18.360643" elapsed="0.002008"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.363051" elapsed="0.000146"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.362811" elapsed="0.000421"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.362798" elapsed="0.000456"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.363720" 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-10-15T02:56:18.363405" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.364463" 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-10-15T02:56:18.363905" elapsed="0.000586"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.364672" elapsed="0.000143"/>
</kw>
<var name="${iteration}">32</var>
<status status="PASS" start="2026-10-15T02:56:18.362770" elapsed="0.002078"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.365220" elapsed="0.000139"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.365006" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.364994" elapsed="0.000421"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.365882" 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-10-15T02:56:18.365582" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.366635" 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-10-15T02:56:18.366087" elapsed="0.000574"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.366810" elapsed="0.000143"/>
</kw>
<var name="${iteration}">33</var>
<status status="PASS" start="2026-10-15T02:56:18.364966" elapsed="0.002020"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.367358" elapsed="0.000157"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.367162" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.367149" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.368037" 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-10-15T02:56:18.367723" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.368774" 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-10-15T02:56:18.368234" elapsed="0.000567"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.368949" elapsed="0.000157"/>
</kw>
<var name="${iteration}">34</var>
<status status="PASS" start="2026-10-15T02:56:18.367120" elapsed="0.002020"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.369510" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.369299" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.369285" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.370174" 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-10-15T02:56:18.369859" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.371002" 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-10-15T02:56:18.370360" elapsed="0.000688"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.371199" elapsed="0.000141"/>
</kw>
<var name="${iteration}">35</var>
<status status="PASS" start="2026-10-15T02:56:18.369258" elapsed="0.002115"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.371745" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.371548" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.371535" elapsed="0.000407"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.372411" 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-10-15T02:56:18.372110" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.373149" 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-10-15T02:56:18.372613" elapsed="0.000562"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.373323" elapsed="0.000157"/>
</kw>
<var name="${iteration}">36</var>
<status status="PASS" start="2026-10-15T02:56:18.371506" elapsed="0.002007"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.373874" elapsed="0.000177"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.373678" elapsed="0.000409"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.373665" elapsed="0.000444"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.374584" 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-10-15T02:56:18.374266" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.375349" 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-10-15T02:56:18.374805" elapsed="0.000570"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.375542" elapsed="0.000143"/>
</kw>
<var name="${iteration}">37</var>
<status status="PASS" start="2026-10-15T02:56:18.373635" elapsed="0.002084"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.376091" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.375877" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.375864" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.376760" 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-10-15T02:56:18.376439" elapsed="0.000345"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.377502" 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-10-15T02:56:18.376950" elapsed="0.000578"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.377679" elapsed="0.000141"/>
</kw>
<var name="${iteration}">38</var>
<status status="PASS" start="2026-10-15T02:56:18.375836" elapsed="0.002017"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.378226" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.378012" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.377999" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.378960" 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-10-15T02:56:18.378610" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.379747" 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-10-15T02:56:18.379190" elapsed="0.000588"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.379956" elapsed="0.000178"/>
</kw>
<var name="${iteration}">39</var>
<status status="PASS" start="2026-10-15T02:56:18.377971" 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-10-15T02:56:18.380583" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.380365" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.380352" elapsed="0.000431"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.381306" 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-10-15T02:56:18.380951" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.382151" 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-10-15T02:56:18.381537" 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-10-15T02:56:18.382328" elapsed="0.000160"/>
</kw>
<var name="${iteration}">40</var>
<status status="PASS" start="2026-10-15T02:56:18.380318" 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-10-15T02:56:18.382884" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.382682" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.382667" elapsed="0.000433"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.383570" 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-10-15T02:56:18.383252" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.384323" 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-10-15T02:56:18.383757" 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-10-15T02:56:18.384520" elapsed="0.000142"/>
</kw>
<var name="${iteration}">41</var>
<status status="PASS" start="2026-10-15T02:56:18.382638" elapsed="0.002057"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.385090" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.384854" elapsed="0.000444"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.384840" elapsed="0.000482"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.385978" 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-10-15T02:56:18.385508" elapsed="0.000504"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.386798" 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-10-15T02:56:18.386197" 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-10-15T02:56:18.386979" elapsed="0.000165"/>
</kw>
<var name="${iteration}">42</var>
<status status="PASS" start="2026-10-15T02:56:18.384812" 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-10-15T02:56:18.387552" elapsed="0.000143"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.387337" elapsed="0.000392"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.387324" elapsed="0.000427"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.388273" 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-10-15T02:56:18.387928" elapsed="0.000373"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.389069" 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-10-15T02:56:18.388502" 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-10-15T02:56:18.389248" elapsed="0.000142"/>
</kw>
<var name="${iteration}">43</var>
<status status="PASS" start="2026-10-15T02:56:18.387296" elapsed="0.002126"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.389798" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.389602" elapsed="0.000370"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.389588" elapsed="0.000406"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.390476" 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-10-15T02:56:18.390161" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.391256" 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-10-15T02:56:18.390662" 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-10-15T02:56:18.391463" elapsed="0.000148"/>
</kw>
<var name="${iteration}">44</var>
<status status="PASS" start="2026-10-15T02:56:18.389559" elapsed="0.002085"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.392035" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.391807" elapsed="0.000422"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.391794" elapsed="0.000457"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.392769" 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-10-15T02:56:18.392404" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.393602" 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-10-15T02:56:18.392983" 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-10-15T02:56:18.393793" elapsed="0.000158"/>
</kw>
<var name="${iteration}">45</var>
<status status="PASS" start="2026-10-15T02:56:18.391765" 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-10-15T02:56:18.394379" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.394177" elapsed="0.000396"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.394164" elapsed="0.000431"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.395077" 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-10-15T02:56:18.394757" elapsed="0.000345"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.395854" 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-10-15T02:56:18.395264" 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-10-15T02:56:18.396082" elapsed="0.000180"/>
</kw>
<var name="${iteration}">46</var>
<status status="PASS" start="2026-10-15T02:56:18.394135" elapsed="0.002162"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.396693" elapsed="0.000161"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.396473" elapsed="0.000416"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.396444" elapsed="0.000468"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.397387" 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-10-15T02:56:18.397084" elapsed="0.000327"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.398135" 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-10-15T02:56:18.397593" elapsed="0.000568"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.398311" elapsed="0.000155"/>
</kw>
<var name="${iteration}">47</var>
<status status="PASS" start="2026-10-15T02:56:18.396417" elapsed="0.002084"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.398856" elapsed="0.000139"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.398662" elapsed="0.000384"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.398649" elapsed="0.000420"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.399536" 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-10-15T02:56:18.399219" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.400302" 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-10-15T02:56:18.399740" elapsed="0.000588"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.400492" elapsed="0.000145"/>
</kw>
<var name="${iteration}">48</var>
<status status="PASS" start="2026-10-15T02:56:18.398621" elapsed="0.002051"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.401058" elapsed="0.000247"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.400845" elapsed="0.000495"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.400824" elapsed="0.000538"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.401830" 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-10-15T02:56:18.401529" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.402576" 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-10-15T02:56:18.402034" elapsed="0.000568"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.402750" elapsed="0.000145"/>
</kw>
<var name="${iteration}">49</var>
<status status="PASS" start="2026-10-15T02:56:18.400796" elapsed="0.002132"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.403311" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.403111" elapsed="0.000396"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.403099" elapsed="0.000430"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.404002" 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-10-15T02:56:18.403683" elapsed="0.000361"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.404782" 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-10-15T02:56:18.404207" 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-10-15T02:56:18.404981" elapsed="0.000178"/>
</kw>
<var name="${iteration}">50</var>
<status status="PASS" start="2026-10-15T02:56:18.403069" elapsed="0.002125"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.405577" elapsed="0.000149"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.405355" elapsed="0.000406"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.405341" elapsed="0.000442"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.406302" 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-10-15T02:56:18.405941" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.407314" 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-10-15T02:56:18.406510" elapsed="0.000953"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.407674" elapsed="0.000179"/>
</kw>
<var name="${iteration}">51</var>
<status status="PASS" start="2026-10-15T02:56:18.405313" elapsed="0.002574"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.408279" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.408079" elapsed="0.000397"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.408065" elapsed="0.000434"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.408967" 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-10-15T02:56:18.408657" elapsed="0.000334"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.409714" 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-10-15T02:56:18.409174" elapsed="0.000566"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.409891" elapsed="0.000158"/>
</kw>
<var name="${iteration}">52</var>
<status status="PASS" start="2026-10-15T02:56:18.408012" elapsed="0.002071"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.410443" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.410245" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.410231" elapsed="0.000427"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.411124" 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-10-15T02:56:18.410809" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.411897" 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-10-15T02:56:18.411347" elapsed="0.000576"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.412234" elapsed="0.000143"/>
</kw>
<var name="${iteration}">53</var>
<status status="PASS" start="2026-10-15T02:56:18.410203" 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-10-15T02:56:18.412791" elapsed="0.000148"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.412589" elapsed="0.000385"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.412575" elapsed="0.000421"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.413477" 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-10-15T02:56:18.413164" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.414213" 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-10-15T02:56:18.413665" elapsed="0.000575"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.414388" elapsed="0.000162"/>
</kw>
<var name="${iteration}">54</var>
<status status="PASS" start="2026-10-15T02:56:18.412547" elapsed="0.002040"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.414964" elapsed="0.000163"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.414767" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.414753" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.415713" 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-10-15T02:56:18.415359" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.416520" 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-10-15T02:56:18.415904" 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-10-15T02:56:18.416707" elapsed="0.000142"/>
</kw>
<var name="${iteration}">55</var>
<status status="PASS" start="2026-10-15T02:56:18.414725" elapsed="0.002157"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.417418" elapsed="0.000175"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.417189" elapsed="0.000442"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.417046" elapsed="0.000608"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.418233" 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-10-15T02:56:18.417826" elapsed="0.000434"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.419114" 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-10-15T02:56:18.418505" 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-10-15T02:56:18.419311" elapsed="0.000175"/>
</kw>
<var name="${iteration}">56</var>
<status status="PASS" start="2026-10-15T02:56:18.417000" elapsed="0.002521"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.419883" elapsed="0.000163"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.419683" elapsed="0.000398"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.419670" elapsed="0.000433"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.420571" 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-10-15T02:56:18.420254" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.421365" 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-10-15T02:56:18.420781" 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-10-15T02:56:18.421589" elapsed="0.000177"/>
</kw>
<var name="${iteration}">57</var>
<status status="PASS" start="2026-10-15T02:56:18.419642" elapsed="0.002171"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.422222" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.421989" elapsed="0.000416"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.421975" elapsed="0.000462"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.422962" 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-10-15T02:56:18.422610" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.423799" 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-10-15T02:56:18.423220" 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-10-15T02:56:18.424003" elapsed="0.000191"/>
</kw>
<var name="${iteration}">58</var>
<status status="PASS" start="2026-10-15T02:56:18.421945" elapsed="0.002285"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.424674" elapsed="0.000146"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.424421" elapsed="0.000434"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.424407" elapsed="0.000470"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.425377" 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-10-15T02:56:18.425051" elapsed="0.000351"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.426180" 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-10-15T02:56:18.425583" 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-10-15T02:56:18.426397" elapsed="0.000189"/>
</kw>
<var name="${iteration}">59</var>
<status status="PASS" start="2026-10-15T02:56:18.424378" elapsed="0.002243"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.427010" elapsed="0.000178"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.426808" elapsed="0.000417"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.426793" elapsed="0.000463"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.427809" 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-10-15T02:56:18.427438" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.428677" 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-10-15T02:56:18.428044" 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-10-15T02:56:18.428872" elapsed="0.000195"/>
</kw>
<var name="${iteration}">60</var>
<status status="PASS" start="2026-10-15T02:56:18.426755" elapsed="0.002349"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.429527" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.429281" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.429267" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.430328" 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-10-15T02:56:18.430002" elapsed="0.000351"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.431114" 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-10-15T02:56:18.430554" elapsed="0.000587"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.431293" elapsed="0.000175"/>
</kw>
<var name="${iteration}">61</var>
<status status="PASS" start="2026-10-15T02:56:18.429237" 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-10-15T02:56:18.431880" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.431665" elapsed="0.000442"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.431652" elapsed="0.000482"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.432704" 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-10-15T02:56:18.432317" elapsed="0.000412"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.433432" 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-10-15T02:56:18.432893" elapsed="0.000582"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.433626" elapsed="0.000142"/>
</kw>
<var name="${iteration}">62</var>
<status status="PASS" start="2026-10-15T02:56:18.431624" elapsed="0.002177"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.434283" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.434083" elapsed="0.000392"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.434070" elapsed="0.000428"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.434952" 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-10-15T02:56:18.434650" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.435694" 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-10-15T02:56:18.435157" elapsed="0.000564"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.435872" elapsed="0.000154"/>
</kw>
<var name="${iteration}">63</var>
<status status="PASS" start="2026-10-15T02:56:18.434039" elapsed="0.002022"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.436415" elapsed="0.000157"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.436219" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.436206" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.437098" 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-10-15T02:56:18.436784" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.437822" 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-10-15T02:56:18.437289" elapsed="0.000559"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.437996" elapsed="0.000159"/>
</kw>
<var name="${iteration}">64</var>
<status status="PASS" start="2026-10-15T02:56:18.436178" elapsed="0.002010"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.438561" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.438347" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.438334" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.439227" 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-10-15T02:56:18.438910" elapsed="0.000342"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.439946" 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-10-15T02:56:18.439413" elapsed="0.000559"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.440193" elapsed="0.000144"/>
</kw>
<var name="${iteration}">65</var>
<status status="PASS" start="2026-10-15T02:56:18.438306" elapsed="0.002065"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.440748" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.440549" elapsed="0.000374"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.440535" elapsed="0.000410"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.441413" 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-10-15T02:56:18.441113" elapsed="0.000324"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.442157" 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-10-15T02:56:18.441615" elapsed="0.000569"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.442334" elapsed="0.000156"/>
</kw>
<var name="${iteration}">66</var>
<status status="PASS" start="2026-10-15T02:56:18.440507" elapsed="0.002017"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.442887" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.442684" elapsed="0.000396"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.442671" elapsed="0.000431"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.443567" 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-10-15T02:56:18.443254" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.444298" 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-10-15T02:56:18.443758" elapsed="0.000566"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.444490" elapsed="0.000144"/>
</kw>
<var name="${iteration}">67</var>
<status status="PASS" start="2026-10-15T02:56:18.442643" elapsed="0.002027"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.445047" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.444828" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.444815" elapsed="0.000435"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.445720" 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-10-15T02:56:18.445405" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.446460" 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-10-15T02:56:18.445904" elapsed="0.000584"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.446641" elapsed="0.000141"/>
</kw>
<var name="${iteration}">68</var>
<status status="PASS" start="2026-10-15T02:56:18.444787" elapsed="0.002027"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.447193" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.446978" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.446964" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.447858" 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-10-15T02:56:18.447560" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.448748" 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-10-15T02:56:18.448077" elapsed="0.000697"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.448943" elapsed="0.000177"/>
</kw>
<var name="${iteration}">69</var>
<status status="PASS" start="2026-10-15T02:56:18.446931" 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-10-15T02:56:18.449606" elapsed="0.000166"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.449342" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.449322" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.450304" 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-10-15T02:56:18.449982" elapsed="0.000354"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.451151" 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-10-15T02:56:18.450525" 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-10-15T02:56:18.451396" elapsed="0.000191"/>
</kw>
<var name="${iteration}">70</var>
<status status="PASS" start="2026-10-15T02:56:18.449289" 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-10-15T02:56:18.451998" elapsed="0.000162"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.451799" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.451786" elapsed="0.000430"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.452706" 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-10-15T02:56:18.452366" elapsed="0.000365"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.453548" 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-10-15T02:56:18.452896" elapsed="0.000680"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.453752" elapsed="0.000159"/>
</kw>
<var name="${iteration}">71</var>
<status status="PASS" start="2026-10-15T02:56:18.451757" elapsed="0.002188"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.454321" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.454123" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.454110" elapsed="0.000426"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.454986" 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-10-15T02:56:18.454687" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.455747" 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-10-15T02:56:18.455188" elapsed="0.000585"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.455922" elapsed="0.000159"/>
</kw>
<var name="${iteration}">72</var>
<status status="PASS" start="2026-10-15T02:56:18.454081" elapsed="0.002033"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.456482" elapsed="0.000179"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.456271" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.456258" elapsed="0.000461"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.457192" 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-10-15T02:56:18.456877" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.457938" 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-10-15T02:56:18.457378" elapsed="0.000587"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.458151" elapsed="0.000159"/>
</kw>
<var name="${iteration}">73</var>
<status status="PASS" start="2026-10-15T02:56:18.456231" elapsed="0.002118"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.458812" elapsed="0.000163"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.458565" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.458540" elapsed="0.000519"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.459580" 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-10-15T02:56:18.459230" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.460431" 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-10-15T02:56:18.459806" 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-10-15T02:56:18.460645" elapsed="0.000158"/>
</kw>
<var name="${iteration}">74</var>
<status status="PASS" start="2026-10-15T02:56:18.458510" 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-10-15T02:56:18.461272" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.461045" elapsed="0.000418"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.461013" elapsed="0.000474"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.461941" 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-10-15T02:56:18.461638" elapsed="0.000328"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.462799" 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-10-15T02:56:18.462203" 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-10-15T02:56:18.462977" elapsed="0.000160"/>
</kw>
<var name="${iteration}">75</var>
<status status="PASS" start="2026-10-15T02:56:18.460984" elapsed="0.002187"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.463541" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.463330" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.463317" elapsed="0.000422"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.464306" 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-10-15T02:56:18.463891" elapsed="0.000439"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.465048" 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-10-15T02:56:18.464509" elapsed="0.000567"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.465228" elapsed="0.000141"/>
</kw>
<var name="${iteration}">76</var>
<status status="PASS" start="2026-10-15T02:56:18.463289" elapsed="0.002114"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.465784" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.465585" elapsed="0.000373"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.465572" elapsed="0.000408"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.466443" 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-10-15T02:56:18.466144" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.467176" 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-10-15T02:56:18.466645" elapsed="0.000557"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.467350" elapsed="0.000156"/>
</kw>
<var name="${iteration}">77</var>
<status status="PASS" start="2026-10-15T02:56:18.465544" elapsed="0.001995"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.467911" elapsed="0.000164"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.467696" elapsed="0.000414"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.467683" elapsed="0.000449"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.468666" 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-10-15T02:56:18.468309" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.469516" 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-10-15T02:56:18.468888" 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-10-15T02:56:18.469694" elapsed="0.000141"/>
</kw>
<var name="${iteration}">78</var>
<status status="PASS" start="2026-10-15T02:56:18.467655" 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-10-15T02:56:18.470252" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.470053" elapsed="0.000374"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.470039" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.470913" 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-10-15T02:56:18.470616" elapsed="0.000321"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.471658" 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-10-15T02:56:18.471116" elapsed="0.000570"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.471835" elapsed="0.000140"/>
</kw>
<var name="${iteration}">79</var>
<status status="PASS" start="2026-10-15T02:56:18.469990" elapsed="0.002018"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.472389" elapsed="0.000158"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.472188" elapsed="0.000425"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.472170" elapsed="0.000466"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.473129" 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-10-15T02:56:18.472789" elapsed="0.000365"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.473908" 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-10-15T02:56:18.473321" 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-10-15T02:56:18.474123" elapsed="0.000162"/>
</kw>
<var name="${iteration}">80</var>
<status status="PASS" start="2026-10-15T02:56:18.472142" elapsed="0.002185"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.474760" elapsed="0.000148"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.474533" elapsed="0.000410"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.474517" elapsed="0.000448"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.475436" 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-10-15T02:56:18.475136" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.476257" 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-10-15T02:56:18.475662" 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-10-15T02:56:18.476478" elapsed="0.000152"/>
</kw>
<var name="${iteration}">81</var>
<status status="PASS" start="2026-10-15T02:56:18.474479" elapsed="0.002195"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.477108" elapsed="0.000150"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.476851" elapsed="0.000441"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.476836" elapsed="0.000478"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.477799" 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-10-15T02:56:18.477484" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.478642" 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-10-15T02:56:18.478002" 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-10-15T02:56:18.478847" elapsed="0.000182"/>
</kw>
<var name="${iteration}">82</var>
<status status="PASS" start="2026-10-15T02:56:18.476808" 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-10-15T02:56:18.479477" elapsed="0.000245"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.479247" elapsed="0.000510"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.479227" elapsed="0.000552"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.480249" 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-10-15T02:56:18.479930" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.480977" 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-10-15T02:56:18.480436" elapsed="0.000568"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.481170" elapsed="0.000141"/>
</kw>
<var name="${iteration}">83</var>
<status status="PASS" start="2026-10-15T02:56:18.479198" elapsed="0.002146"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.481715" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.481518" elapsed="0.000370"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.481505" elapsed="0.000404"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.482373" 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-10-15T02:56:18.482076" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.483109" 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-10-15T02:56:18.482574" elapsed="0.000561"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.483315" elapsed="0.000158"/>
</kw>
<var name="${iteration}">84</var>
<status status="PASS" start="2026-10-15T02:56:18.481475" elapsed="0.002031"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.483864" elapsed="0.000139"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.483667" elapsed="0.000409"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.483653" elapsed="0.000446"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.484572" 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-10-15T02:56:18.484250" elapsed="0.000346"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.485292" 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-10-15T02:56:18.484756" elapsed="0.000562"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.485481" elapsed="0.000141"/>
</kw>
<var name="${iteration}">85</var>
<status status="PASS" start="2026-10-15T02:56:18.483626" elapsed="0.002028"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.486006" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.485811" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.485798" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.486695" 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-10-15T02:56:18.486377" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.487424" 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-10-15T02:56:18.486880" elapsed="0.000585"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.487624" elapsed="0.000159"/>
</kw>
<var name="${iteration}">86</var>
<status status="PASS" start="2026-10-15T02:56:18.485770" elapsed="0.002046"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.488226" elapsed="0.000162"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.487991" elapsed="0.000435"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.487978" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.488978" 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-10-15T02:56:18.488648" elapsed="0.000359"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.489811" 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-10-15T02:56:18.489222" 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-10-15T02:56:18.490008" elapsed="0.000178"/>
</kw>
<var name="${iteration}">87</var>
<status status="PASS" start="2026-10-15T02:56:18.487944" elapsed="0.002281"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.490657" elapsed="0.000169"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.490408" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.490389" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.491363" 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-10-15T02:56:18.491062" elapsed="0.000325"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.492107" 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-10-15T02:56:18.491564" elapsed="0.000569"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.492279" elapsed="0.000140"/>
</kw>
<var name="${iteration}">88</var>
<status status="PASS" start="2026-10-15T02:56:18.490354" elapsed="0.002119"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.492836" elapsed="0.000139"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.492640" elapsed="0.000368"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.492626" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.493572" 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-10-15T02:56:18.493227" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.494416" 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-10-15T02:56:18.493785" elapsed="0.000705"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.494646" elapsed="0.000144"/>
</kw>
<var name="${iteration}">89</var>
<status status="PASS" start="2026-10-15T02:56:18.492598" 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-10-15T02:56:18.495329" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.495123" elapsed="0.000399"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.494972" elapsed="0.000572"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.495999" 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-10-15T02:56:18.495698" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.496741" 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-10-15T02:56:18.496203" elapsed="0.000564"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.496916" elapsed="0.000156"/>
</kw>
<var name="${iteration}">90</var>
<status status="PASS" start="2026-10-15T02:56:18.494945" elapsed="0.002160"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.497484" elapsed="0.000142"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.497266" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.497253" elapsed="0.000429"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.498146" 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-10-15T02:56:18.497833" elapsed="0.000337"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.498869" 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-10-15T02:56:18.498331" elapsed="0.000564"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.499058" elapsed="0.000140"/>
</kw>
<var name="${iteration}">91</var>
<status status="PASS" start="2026-10-15T02:56:18.497226" elapsed="0.002005"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.499603" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.499388" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.499375" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.500262" 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-10-15T02:56:18.499947" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.500978" 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-10-15T02:56:18.500460" elapsed="0.000544"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.501169" elapsed="0.000139"/>
</kw>
<var name="${iteration}">92</var>
<status status="PASS" start="2026-10-15T02:56:18.499348" elapsed="0.001992"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.501714" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.501518" elapsed="0.000370"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.501505" elapsed="0.000404"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.502376" 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-10-15T02:56:18.502078" elapsed="0.000323"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.503117" 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-10-15T02:56:18.502577" elapsed="0.000566"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.503290" elapsed="0.000140"/>
</kw>
<var name="${iteration}">93</var>
<status status="PASS" start="2026-10-15T02:56:18.501476" elapsed="0.002002"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.503845" elapsed="0.000140"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.503637" elapsed="0.000396"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.503624" elapsed="0.000433"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.504522" 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-10-15T02:56:18.504208" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.505276" 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-10-15T02:56:18.504740" elapsed="0.000562"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.505464" elapsed="0.000144"/>
</kw>
<var name="${iteration}">94</var>
<status status="PASS" start="2026-10-15T02:56:18.503597" elapsed="0.002044"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.506065" elapsed="0.000161"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.505819" elapsed="0.000447"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.505805" elapsed="0.000484"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.506822" 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-10-15T02:56:18.506471" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.507652" 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-10-15T02:56:18.507058" 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-10-15T02:56:18.507841" elapsed="0.000152"/>
</kw>
<var name="${iteration}">95</var>
<status status="PASS" start="2026-10-15T02:56:18.505772" 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-10-15T02:56:18.508428" elapsed="0.000161"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.508227" elapsed="0.000397"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.508214" elapsed="0.000432"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.509147" 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-10-15T02:56:18.508797" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.509971" 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-10-15T02:56:18.509369" 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-10-15T02:56:18.510192" elapsed="0.000158"/>
</kw>
<var name="${iteration}">96</var>
<status status="PASS" start="2026-10-15T02:56:18.508185" 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-10-15T02:56:18.510924" elapsed="0.000180"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.510688" elapsed="0.000451"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.510675" elapsed="0.000486"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.511633" 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-10-15T02:56:18.511314" elapsed="0.000344"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.512361" 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-10-15T02:56:18.511820" elapsed="0.000568"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.512552" elapsed="0.000142"/>
</kw>
<var name="${iteration}">97</var>
<status status="PASS" start="2026-10-15T02:56:18.510642" elapsed="0.002085"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.513098" elapsed="0.000141"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.512885" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.512872" elapsed="0.000423"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.513761" 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-10-15T02:56:18.513459" elapsed="0.000326"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.514563" 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-10-15T02:56:18.513954" 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-10-15T02:56:18.514766" elapsed="0.000165"/>
</kw>
<var name="${iteration}">98</var>
<status status="PASS" start="2026-10-15T02:56:18.512844" elapsed="0.002129"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.515395" elapsed="0.000166"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.515180" elapsed="0.000446"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.515163" elapsed="0.000491"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.516126" 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-10-15T02:56:18.515807" elapsed="0.000343"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.516845" 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-10-15T02:56:18.516311" elapsed="0.000561"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.517055" elapsed="0.000148"/>
</kw>
<var name="${iteration}">99</var>
<status status="PASS" start="2026-10-15T02:56:18.515124" elapsed="0.002124"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="PASS" start="2026-10-15T02:56:18.517642" elapsed="0.000159"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.517411" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.517398" elapsed="0.000461"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.518406" 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-10-15T02:56:18.518051" elapsed="0.000388"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.519276" 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-10-15T02:56:18.518645" 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-10-15T02:56:18.519487" elapsed="0.000146"/>
</kw>
<var name="${iteration}">100</var>
<status status="PASS" start="2026-10-15T02:56:18.517370" elapsed="0.002296"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="PASS" start="2026-10-15T02:56:18.291661" elapsed="0.228032"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.520827" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="PASS" start="2026-10-15T02:56:18.519851" elapsed="0.001003"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:56:18.520915" elapsed="0.000053"/>
</return>
<msg time="2026-10-15T02:56:18.521104" 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-10-15T02:56:18.262093" elapsed="0.259041"/>
</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-10-15T02:56:18.522469" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:56:18.522201" elapsed="0.000344">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/openflowplugin/add-flow/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T02:56:18.522651" 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-10-15T02:56:18.521823" elapsed="0.000852"/>
</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-10-15T02:56:18.522980" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.522747" elapsed="0.000302"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.523542" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:56:18.523264" elapsed="0.000303"/>
</kw>
<status status="PASS" start="2026-10-15T02:56:18.523072" elapsed="0.000527"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.522725" elapsed="0.000893"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.524147" 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-10-15T02:56:18.523777" elapsed="0.000394"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T02:56:18.524223" elapsed="0.000035"/>
</return>
<msg time="2026-10-15T02:56:18.524371" 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-manganese/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-10-15T02:56:18.521479" elapsed="0.002916"/>
</kw>
<kw name="Post_To_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.526437" 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-10-15T02:56:18.525671" elapsed="0.000838"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.526914" 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-10-15T02:56:18.526698" elapsed="0.000972"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.528181" 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-10-15T02:56:18.527877" elapsed="0.000348"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.528686" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:56:18.528463" elapsed="0.000264"/>
</kw>
<kw name="Join_Two_Headers" owner="TemplatedRequests">
<kw name="Copy Dictionary" owner="Collections">
<msg time="2026-10-15T02:56:18.529435" 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-10-15T02:56:18.529271" elapsed="0.000202"/>
</kw>
<kw name="Get Dictionary Items" owner="Collections">
<msg time="2026-10-15T02:56:18.529761" 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-10-15T02:56:18.529620" elapsed="0.000165"/>
</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-10-15T02:56:18.529938" elapsed="0.000159"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.530514" 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-10-15T02:56:18.530281" elapsed="0.000274"/>
</kw>
<return>
<value>${accumulator}</value>
<status status="PASS" start="2026-10-15T02:56:18.530592" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:56:18.530719" 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-10-15T02:56:18.528903" elapsed="0.001838"/>
</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-10-15T02:56:18.535952" level="INFO">POST Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '76286', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
  "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": ... (set the log level to DEBUG or TRACE to see the full content) 
 </msg>
<msg time="2026-10-15T02:56:18.536127" level="INFO">POST Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '448'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:18.536224" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</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-10-15T02:56:18.531101" elapsed="0.005507">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</status>
</kw>
<status status="FAIL" start="2026-10-15T02:56:18.530803" elapsed="0.005879">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</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-10-15T02:56:18.536861" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.536712" elapsed="0.000209"/>
</branch>
<status status="FAIL" start="2026-10-15T02:56:18.530787" elapsed="0.006157">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</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-10-15T02:56:18.537308" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.537431" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:56:18.537397" elapsed="0.000090"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:18.537382" elapsed="0.000125"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:18.537643" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.537704" elapsed="0.000014"/>
</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-10-15T02:56:18.524778" elapsed="0.013019">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.537864" elapsed="0.000014"/>
</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-10-15T02:56:18.228735" elapsed="0.309213">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</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-10-15T02:56:18.538217" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.538060" elapsed="0.000216"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:18.538045" elapsed="0.000253"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:56:18.538326" elapsed="0.000014"/>
</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-10-15T02:56:18.228093" elapsed="0.310319">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</status>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:56:18.223975" elapsed="0.314515">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:56:18.223795" elapsed="0.314745">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</status>
</for>
<doc>Add 100 flows to group type 2 in every switch.</doc>
<status status="FAIL" start="2026-10-15T02:56:18.223492" elapsed="0.315214">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</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-10-15T02:56:18.540113" 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-10-15T02:56:18.539886" elapsed="0.000270"/>
</kw>
<kw name="Start Mininet Single Controller" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.541282" 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-10-15T02:56:18.541078" elapsed="0.000245"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:18.543629" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:18.543367" elapsed="0.000315"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:18.543344" elapsed="0.000360"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:56:18.544055" 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-10-15T02:56:18.544149" 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-10-15T02:56:18.543892" elapsed="0.000281"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.544663" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.55" 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-10-15T02:56:18.544358" elapsed="0.000348"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:56:18.545189" 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-10-15T02:56:18.544880" elapsed="0.000334"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:56:18.546171" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:56:18.546242" 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-10-15T02:56:18.545779" elapsed="0.000486"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:18.546413" elapsed="0.000305"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:56:18.547506" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:56:18.918819" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:55:55 UTC 2026

  System load:  0.0                Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:55:58 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:56:18.547261" elapsed="0.371652"/>
</kw>
<msg time="2026-10-15T02:56:18.918976" 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-10-15T02:56:18.546878" elapsed="0.372178"/>
</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-10-15T02:56:18.545402" elapsed="0.373739"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:56:18.919557" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-10-15T02:56:20.125891" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:56:20.126301" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:56:20.126399" 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-10-15T02:56:18.919364" elapsed="1.207125"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:56:20.126987" elapsed="0.000602"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:20.128905" 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-10-15T02:56:20.128226" elapsed="0.000977"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:56:20.129712" elapsed="0.000050"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:56:20.129391" elapsed="0.000443"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:20.129335" 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-10-15T02:56:20.130220" elapsed="0.000068"/>
</return>
<status status="PASS" start="2026-10-15T02:56:20.129996" elapsed="0.000361"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:20.129963" elapsed="0.000444"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:56:20.130511" 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">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:20.132317" elapsed="0.000751"/>
</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-10-15T02:56:20.133534" elapsed="0.000382"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:56:20.134272" elapsed="0.000286"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:56:20.131277" elapsed="0.003403"/>
</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-10-15T02:56:18.542933" elapsed="1.591945"/>
</kw>
<msg time="2026-10-15T02:56:20.135049" 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-10-15T02:56:18.542410" elapsed="1.592775"/>
</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-10-15T02:56:18.541822" elapsed="1.593530"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:20.140007" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:20.139348" elapsed="0.000812"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:20.139292" elapsed="0.000920"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:56:20.141041" 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-10-15T02:56:20.141260" 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-10-15T02:56:20.140722" elapsed="0.000595"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:20.142586" 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.55" 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-10-15T02:56:20.141839" elapsed="0.000854"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:56:20.143962" 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-10-15T02:56:20.143152" elapsed="0.000893"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:56:20.146170" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:56:20.146335" 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-10-15T02:56:20.145489" elapsed="0.000896"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:20.146792" elapsed="0.000744"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:56:20.149657" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:56:20.603895" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:55:55 UTC 2026

  System load:  0.0                Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:56:18 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:56:20.148998" elapsed="0.455067"/>
</kw>
<msg time="2026-10-15T02:56:20.604219" 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-10-15T02:56:20.147945" elapsed="0.456354"/>
</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-10-15T02:56:20.144523" elapsed="0.459876"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:56:20.604891" 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-10-15T02:56:20.648239" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-10-15T02:56:20.648605" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:56:20.648701" 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-10-15T02:56:20.604679" elapsed="0.044071"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:56:20.649199" elapsed="0.000519"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:20.650500" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:56:20.650081" elapsed="0.000484"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:56:20.650848" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:56:20.650682" elapsed="0.000233"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:20.650647" elapsed="0.000298"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:56:20.651155" elapsed="0.000042"/>
</return>
<status status="PASS" start="2026-10-15T02:56:20.651014" elapsed="0.000228"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:20.650994" elapsed="0.000279"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:56:20.651319" 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">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:20.652526" elapsed="0.000421"/>
</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-10-15T02:56:20.653270" elapsed="0.000260"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:56:20.653736" elapsed="0.000128"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:56:20.651803" elapsed="0.002130"/>
</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-10-15T02:56:20.138260" elapsed="0.515882"/>
</kw>
<msg time="2026-10-15T02:56:20.654212" 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-10-15T02:56:20.136909" elapsed="0.517372"/>
</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-10-15T02:56:20.135773" elapsed="0.518610"/>
</kw>
<arg>${mininet}</arg>
<status status="PASS" start="2026-10-15T02:56:18.541514" elapsed="2.112964"/>
</kw>
<kw name="Open_Connection_To_Tools_System" owner="SSHKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:56:20.657879" 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-10-15T02:56:20.657359" elapsed="0.000559"/>
</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-10-15T02:56:20.660898" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:56:20.661060" 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-10-15T02:56:20.660376" elapsed="0.000733"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:56:20.661392" elapsed="0.000506"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:56:20.663114" level="INFO">Logging into '10.30.171.55:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:56:21.060278" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Oct 15 02:55:55 UTC 2026

  System load:  0.0                Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.55
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:56:20 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:56:20.662750" elapsed="0.397792"/>
</kw>
<msg time="2026-10-15T02:56:21.060624" 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-10-15T02:56:20.662150" elapsed="0.398550"/>
</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-10-15T02:56:20.659523" elapsed="0.401279"/>
</kw>
<msg time="2026-10-15T02:56:21.060849" 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-10-15T02:56:20.658804" elapsed="0.402087"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-10-15T02:56:20.658224" elapsed="0.402734"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-10-15T02:56:21.061003" elapsed="0.000052"/>
</return>
<msg time="2026-10-15T02:56:21.061190" 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-10-15T02:56:20.656542" elapsed="0.404671"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-15T02:56:21.061936" level="INFO">${mininet_conn_id} = 20</msg>
<arg>${mininet_conn_id}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-15T02:56:21.061545" elapsed="0.000431"/>
</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-10-15T02:56:21.062385" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:21.062064" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-10-15T02:56:21.062043" elapsed="0.000440"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:21.063106" level="INFO">Start mininet --topo linear,3 to 10.30.171.74</msg>
<arg>Start mininet ${options} to ${controller}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:56:21.062761" elapsed="0.000401"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:56:21.065832" level="INFO">sudo mn --controller 'remote,ip=10.30.171.74,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-10-15T02:56:21.063374" elapsed="0.002512"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:56:21.343510" level="INFO">[?2004l*** Creating network
*** Adding controller
*** 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-10-15T02:56:21.066055" elapsed="0.277599"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:56:21.344398" 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-10-15T02:56:21.344057" elapsed="0.000385"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:56:21.345749" 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-10-15T02:56:21.344626" elapsed="0.001173"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:56:21.364911" level="INFO">ef5e6311-6bc3-45eb-bec5-977d25c19a20
    Manager "ptcp:6644"
    Bridge s2
        Controller "ptcp:6655"
        Controller "tcp:10.30.171.74:6633"
        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 s3
        Controller "ptcp:6656"
        Controller "tcp:10.30.171.74:6633"
        fail_mode: secure
        Port s3-eth2
            Interface s3-eth2
        Port s3
            Interface s3
                type: internal
        Port s3-eth1
            Interface s3-eth1
    Bridge s1
        Controller "ptcp:6654"
        Controller "tcp:10.30.171.74:6633"
        fail_mode: secure
        Port s1-eth2
            Interface s1-eth2
        Port s1
            Interface s1
                type: internal
        Port s1-eth1
            Interface s1-eth1
    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-10-15T02:56:21.345950" elapsed="0.019022"/>
</kw>
<return>
<value>${mininet_conn_id}</value>
<status status="PASS" start="2026-10-15T02:56:21.365029" elapsed="0.000046"/>
</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-10-15T02:56:18.540415" elapsed="2.824765"/>
</kw>
<arg>${SWITCHES}</arg>
<doc>Start mininet linear topology with 3 nodes.</doc>
<status status="PASS" start="2026-10-15T02:56:18.539386" elapsed="2.825853"/>
</kw>
<doc>Start Mininet Linear with 3 switches.</doc>
<status status="PASS" start="2026-10-15T02:56:18.538925" elapsed="2.826432"/>
</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-10-15T02:56:21.370648" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:21.370700" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:21.370856" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:21.367112" elapsed="0.004180">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.371555" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.371967" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.372189" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.372381" elapsed="0.000018"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.372589" elapsed="0.000018"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.372782" elapsed="0.000018"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.373010" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.373289" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:21.373113" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:21.373095" elapsed="0.000266"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.373596" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:21.373410" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:21.373396" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:21.373883" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:21.373715" elapsed="0.000217"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:21.373701" elapsed="0.000252"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:21.371797" elapsed="0.002177"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:21.371626" elapsed="0.002371"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:21.366756" elapsed="0.007346">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:22.382117" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:22.382239" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:22.382988" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:22.376123" elapsed="0.007778">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.384564" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.385515" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.385957" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.386409" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.386858" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.387297" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.387855" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.388472" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:22.388064" elapsed="0.000520"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:22.388005" elapsed="0.000630"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.389135" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:22.388745" elapsed="0.000499"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:22.388714" elapsed="0.000577"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:22.389800" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:22.389395" elapsed="0.000514"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:22.389366" elapsed="0.000596"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:22.385117" elapsed="0.004967"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:22.384720" elapsed="0.005429"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:22.375263" elapsed="0.015102">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:23.398775" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:23.398902" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:23.399156" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:23.392671" elapsed="0.007443">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:23.400783" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:23.401811" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:23.402304" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:23.402798" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:23.403278" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:23.403797" 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-10-15T02:56:23.404309" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:23.404978" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:23.404551" elapsed="0.000565"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:23.404510" elapsed="0.000661"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:23.405720" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:23.405287" elapsed="0.000554"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:23.405255" elapsed="0.000635"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:23.406436" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:23.406000" elapsed="0.000582"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:23.405968" elapsed="0.000665"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:23.401375" elapsed="0.005306"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:23.400964" elapsed="0.005770"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:23.391747" elapsed="0.015209">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:24.415531" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:24.415655" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:24.415873" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:24.409216" elapsed="0.007595">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:24.417480" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:24.418401" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:24.418862" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:24.419308" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:24.419752" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:24.420588" 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-10-15T02:56:24.421079" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:24.421680" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:24.421262" elapsed="0.000526"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:24.421227" elapsed="0.000610"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:24.422350" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:24.421949" elapsed="0.000540"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:24.421917" elapsed="0.000620"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:24.423071" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:24.422641" elapsed="0.000538"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:24.422611" elapsed="0.000614"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:24.418009" elapsed="0.005260"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:24.417632" elapsed="0.005687"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:24.408351" elapsed="0.015191">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:25.431077" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:25.431163" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:25.431316" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:25.425681" elapsed="0.006282">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:25.432509" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:25.433190" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:25.433507" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:25.433811" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:25.434128" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:25.434400" 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-10-15T02:56:25.434699" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:25.435127" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:25.434816" elapsed="0.000455"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:25.434792" elapsed="0.000550"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:25.435818" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:25.435428" elapsed="0.000501"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:25.435404" elapsed="0.000582"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:25.436515" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:25.436114" elapsed="0.000514"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:25.436081" elapsed="0.000598"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:25.432924" elapsed="0.003803"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:25.432616" elapsed="0.004162"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:25.424828" elapsed="0.012149">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:26.445231" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:26.445362" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:26.445635" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:26.439188" elapsed="0.007427">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:26.447303" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:26.448321" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:26.448822" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:26.449301" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:26.449790" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:26.450331" 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-10-15T02:56:26.450842" elapsed="0.000050"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:26.451513" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:26.451067" elapsed="0.000657"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:26.451006" elapsed="0.000775"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:26.452339" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:26.451898" elapsed="0.000587"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:26.451864" elapsed="0.000675"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:26.453078" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:26.452652" elapsed="0.000543"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:26.452620" elapsed="0.000625"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:26.447895" elapsed="0.005398"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:26.447491" elapsed="0.005856"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:26.438310" elapsed="0.015275">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:27.459173" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:27.459234" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:27.459350" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:27.455027" elapsed="0.004771">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:27.460109" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:27.460530" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:27.460730" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:27.460922" elapsed="0.000018"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:27.461139" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:27.461338" 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-10-15T02:56:27.461565" elapsed="0.000019"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:27.461825" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:27.461651" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:27.461633" elapsed="0.000265"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:27.462135" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:27.461948" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:27.461933" elapsed="0.000272"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:27.462418" elapsed="0.000017"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:27.462252" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:27.462238" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:27.460343" elapsed="0.002180"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:27.460179" elapsed="0.002366"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:27.454607" elapsed="0.008029">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:28.470893" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:28.471135" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:28.471357" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:28.464691" elapsed="0.007578">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:28.472897" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:28.473843" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:28.474308" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:28.474769" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:28.475218" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:28.475684" 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-10-15T02:56:28.476184" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:28.476782" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:28.476371" elapsed="0.000522"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:28.476335" elapsed="0.000608"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:28.477481" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:28.477075" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:28.477022" elapsed="0.000619"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:28.478141" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:28.477744" elapsed="0.000506"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:28.477714" elapsed="0.000583"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:28.473438" elapsed="0.004902"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:28.473076" elapsed="0.005314"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:28.463817" elapsed="0.014793">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:29.486721" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:29.486839" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:29.487510" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:29.480677" elapsed="0.007703">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:29.488987" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:29.489907" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:29.490370" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:29.490916" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:29.491365" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:29.491830" 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-10-15T02:56:29.492287" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:29.492877" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:29.492493" elapsed="0.000490"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:29.492431" elapsed="0.000602"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:29.493568" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:29.493166" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:29.493135" elapsed="0.000588"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:29.494220" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:29.493826" elapsed="0.000500"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:29.493796" elapsed="0.000576"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:29.489539" elapsed="0.004877"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:29.489157" elapsed="0.005367"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:29.479831" elapsed="0.014884">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:30.502679" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:30.502799" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:30.503012" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:30.496807" elapsed="0.007108">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.504598" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.505537" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.505973" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.506410" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.506874" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.507322" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.507844" elapsed="0.000068"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.508566" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:30.508129" elapsed="0.000549"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:30.508082" elapsed="0.000648"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.509225" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:30.508835" elapsed="0.000496"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:30.508805" elapsed="0.000697"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:30.509985" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:30.509617" elapsed="0.000568"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:30.509587" elapsed="0.000645"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:30.505141" elapsed="0.005136"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:30.504751" elapsed="0.005576"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:30.495949" elapsed="0.014607">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:31.517308" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:31.517418" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:31.517656" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:31.512410" elapsed="0.006100">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.519143" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.520059" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.520530" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.520959" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.521412" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.521861" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.522346" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.523350" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:31.522930" elapsed="0.000559"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:31.522526" elapsed="0.001018"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.524025" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:31.523654" elapsed="0.000500"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:31.523624" elapsed="0.000578"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:31.524709" elapsed="0.000112"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:31.524305" elapsed="0.000587"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:31.524275" elapsed="0.000665"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:31.519669" elapsed="0.005318"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:31.519295" elapsed="0.005742"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:31.511754" elapsed="0.013585">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:32.532007" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:32.532126" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:32.532381" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:32.527061" elapsed="0.006018">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:32.533830" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:32.534960" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:32.535431" elapsed="0.000072"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:32.535894" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:32.536342" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:32.536798" 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-10-15T02:56:32.537261" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:32.537884" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:32.537490" elapsed="0.000505"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:32.537425" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:32.538583" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:32.538177" elapsed="0.000517"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:32.538146" elapsed="0.000595"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:32.539259" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:32.538844" elapsed="0.000526"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:32.538814" elapsed="0.000603"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:32.534506" elapsed="0.004986"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:32.534003" elapsed="0.005542"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:32.526355" elapsed="0.013387">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:33.547726" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:33.547844" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:33.548075" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:33.541850" elapsed="0.007120">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:33.549615" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:33.550615" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:33.551115" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:33.551611" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:33.552096" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:33.552600" 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-10-15T02:56:33.553152" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:33.553751" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:33.553340" elapsed="0.000522"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:33.553305" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:33.554414" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:33.554018" elapsed="0.000532"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:33.553988" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:33.555170" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:33.554701" elapsed="0.000584"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:33.554671" elapsed="0.000660"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:33.550160" elapsed="0.005217"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:33.549764" elapsed="0.005663"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:33.540987" elapsed="0.014667">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:34.564785" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:34.564911" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:34.565171" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:34.558920" elapsed="0.007210">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:34.566794" elapsed="0.000053"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:34.567794" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:34.568259" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:34.568712" elapsed="0.000061"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:34.569173" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:34.569628" 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-10-15T02:56:34.570089" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:34.570694" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:34.570275" elapsed="0.000530"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:34.570237" elapsed="0.000619"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:34.571371" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:34.570963" elapsed="0.000592"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:34.570932" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:34.572327" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:34.571764" elapsed="0.000764"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:34.571720" elapsed="0.000874"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:34.567360" elapsed="0.005283"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:34.566954" elapsed="0.005740"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:34.557298" elapsed="0.015596">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:35.581221" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:35.581347" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:35.581604" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:35.575087" elapsed="0.007430">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:35.583442" elapsed="0.000101"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:35.584509" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:35.584968" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:35.585424" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:35.585881" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:35.586323" 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-10-15T02:56:35.586795" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:35.587399" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:35.586991" elapsed="0.000548"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:35.586944" elapsed="0.000647"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:35.588106" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:35.587702" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:35.587669" elapsed="0.000596"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:35.588772" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:35.588371" elapsed="0.000509"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:35.588340" elapsed="0.000588"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:35.584069" elapsed="0.004905"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:35.583662" elapsed="0.005362"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:35.574217" elapsed="0.015029">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:36.597245" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:36.597373" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:36.597648" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:36.591319" elapsed="0.007342">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:36.599422" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:36.600937" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:36.601479" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:36.601953" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:36.602473" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:36.603112" 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-10-15T02:56:36.603723" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:36.604382" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:36.603935" elapsed="0.000596"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:36.603895" elapsed="0.000692"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:36.605127" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:36.604702" elapsed="0.000546"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:36.604669" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:36.605877" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:36.605429" elapsed="0.000566"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:36.605392" elapsed="0.000653"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:36.600516" elapsed="0.005785"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:36.599620" elapsed="0.006741"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:36.590482" elapsed="0.016156">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:37.615005" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:37.615159" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:37.615386" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:37.608847" elapsed="0.007499">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:37.617013" elapsed="0.000082"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:37.618042" elapsed="0.000072"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:37.618570" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:37.619030" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:37.619531" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:37.619984" 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-10-15T02:56:37.620628" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:37.621265" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:37.620833" elapsed="0.000710"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:37.620793" elapsed="0.000827"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:37.622271" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:37.621766" elapsed="0.000647"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:37.621730" elapsed="0.000770"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:37.623083" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:37.622625" elapsed="0.000578"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:37.622586" elapsed="0.000668"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:37.617640" elapsed="0.005664"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:37.617208" elapsed="0.006154"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:37.607931" elapsed="0.015700">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:38.631926" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:38.632051" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:38.632296" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:38.625774" elapsed="0.007470">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:38.633911" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:38.634934" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:38.635433" elapsed="0.000076"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:38.635912" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:38.636356" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:38.636841" 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-10-15T02:56:38.637354" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:38.637946" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:38.637569" elapsed="0.000503"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:38.637532" elapsed="0.000593"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:38.638636" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:38.638234" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:38.638202" elapsed="0.000588"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:38.639285" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:38.638892" elapsed="0.000502"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:38.638862" elapsed="0.000620"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:38.634527" elapsed="0.005004"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:38.634089" elapsed="0.005492"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:38.624911" elapsed="0.014856">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:39.650767" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:39.650990" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:39.651257" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:39.645240" elapsed="0.006917">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:39.652797" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:39.653809" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:39.654303" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:39.654790" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:39.655265" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:39.655748" 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-10-15T02:56:39.656244" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:39.656885" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:39.656439" elapsed="0.000565"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:39.656400" elapsed="0.000679"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:39.657634" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:39.657200" elapsed="0.000553"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:39.657166" elapsed="0.000638"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:39.658342" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:39.657916" elapsed="0.000573"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:39.657883" elapsed="0.000661"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:39.653376" elapsed="0.005218"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:39.652957" elapsed="0.005692"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:39.644259" elapsed="0.014594">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:40.667251" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:40.667374" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:40.667632" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:40.661053" elapsed="0.007521">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:40.669185" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:40.670134" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:40.670611" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:40.671162" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:40.671630" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:40.672083" 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-10-15T02:56:40.672563" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:40.673159" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:40.672749" elapsed="0.000520"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:40.672713" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:40.673847" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:40.673430" elapsed="0.000527"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:40.673399" elapsed="0.000606"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:40.674600" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:40.674189" elapsed="0.000520"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:40.674155" elapsed="0.000601"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:40.669732" elapsed="0.005070"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:40.669337" elapsed="0.005517"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:40.660175" elapsed="0.014868">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:41.683742" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:41.683866" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:41.684109" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:41.677258" elapsed="0.007736">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:41.685687" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:41.687212" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:41.687735" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:41.688202" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:41.688706" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:41.689171" 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-10-15T02:56:41.689654" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:41.690324" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:41.689871" elapsed="0.000573"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:41.689831" elapsed="0.000710"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:41.691044" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:41.690659" elapsed="0.000531"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:41.690624" elapsed="0.000741"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:41.692181" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:41.691591" elapsed="0.000756"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:41.691539" elapsed="0.000885"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:41.686785" elapsed="0.005759"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:41.685841" elapsed="0.006785"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:41.676326" elapsed="0.016583">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:42.701148" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:42.701270" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:42.701525" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:42.695183" elapsed="0.007318">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:42.703189" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:42.704259" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:42.704813" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:42.705433" elapsed="0.000118"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:42.706035" elapsed="0.000073"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:42.706586" 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-10-15T02:56:42.707043" elapsed="0.000070"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:42.707749" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:42.707278" elapsed="0.000585"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:42.707227" elapsed="0.000688"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:42.708434" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:42.708028" elapsed="0.000549"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:42.707996" elapsed="0.000629"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:42.709180" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:42.708766" elapsed="0.000529"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:42.708719" elapsed="0.000624"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:42.703816" elapsed="0.005572"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:42.703355" elapsed="0.006083"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:42.694232" elapsed="0.015434">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:43.718288" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:43.718409" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:43.718795" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:43.712410" elapsed="0.007348">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.720373" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.721320" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.721796" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.722278" elapsed="0.000090"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.722883" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.723422" elapsed="0.000099"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.724134" elapsed="0.000070"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.724888" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:43.724377" elapsed="0.000732"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:43.724338" elapsed="0.000855"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.725850" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:43.725322" elapsed="0.000671"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:43.725289" elapsed="0.000753"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:43.726598" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:43.726181" elapsed="0.000534"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:43.726148" elapsed="0.000629"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:43.720917" elapsed="0.005927"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:43.720556" elapsed="0.006357"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:43.711205" elapsed="0.016008">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:44.735944" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:44.736146" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:44.736520" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:44.729805" elapsed="0.007727">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:44.738190" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:44.739202" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:44.739691" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:44.740198" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:44.740705" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:44.741165" 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-10-15T02:56:44.741730" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:44.742325" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:44.741918" elapsed="0.000516"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:44.741882" elapsed="0.000630"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:44.742998" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:44.742622" elapsed="0.000505"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:44.742590" elapsed="0.000585"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:44.743680" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:44.743278" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:44.743248" elapsed="0.000588"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:44.738757" elapsed="0.005125"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:44.738349" elapsed="0.005585"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:44.728953" elapsed="0.015204">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:45.752443" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:45.752638" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:45.752922" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:45.746368" elapsed="0.007566">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.754701" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.755776" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.756307" elapsed="0.000067"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.756867" elapsed="0.000059"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.757544" elapsed="0.000065"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.758204" elapsed="0.000062"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.758885" elapsed="0.000064"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.759748" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:45.759183" elapsed="0.000717"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:45.759127" elapsed="0.000843"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.760695" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:45.760145" elapsed="0.000693"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:45.760099" elapsed="0.000788"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:45.761402" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:45.760996" elapsed="0.000550"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:45.760965" elapsed="0.000629"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:45.755269" elapsed="0.006373"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:45.754868" elapsed="0.006825"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:45.745427" elapsed="0.016469">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:46.768433" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:46.768533" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:46.768665" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:46.763654" elapsed="0.005489">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:46.769548" elapsed="0.000030"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:46.770333" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:46.770562" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:46.770760" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:46.770955" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:46.771167" 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-10-15T02:56:46.771371" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:46.771682" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:46.771500" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:46.771478" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:46.771988" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:46.771817" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:46.771803" elapsed="0.000258"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:46.772301" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:46.772130" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:46.772115" elapsed="0.000258"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:46.770150" elapsed="0.002245"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:46.769636" elapsed="0.002783"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:46.763033" elapsed="0.009507">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:47.779554" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:47.779679" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:47.779907" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:47.774290" elapsed="0.006315">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.781289" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.782150" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.782442" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.782790" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.783197" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.783631" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.784026" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.784573" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:47.784213" elapsed="0.000464"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:47.784180" elapsed="0.000545"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.785169" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:47.784822" elapsed="0.000443"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:47.784795" elapsed="0.000516"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:47.785777" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:47.785409" elapsed="0.000461"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:47.785381" elapsed="0.000532"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:47.781812" elapsed="0.004142"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:47.781433" elapsed="0.004569"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:47.773477" elapsed="0.012733">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:48.792168" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:48.792242" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:48.792360" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:48.787629" elapsed="0.005280">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:48.793245" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:48.793812" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:48.794136" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:48.794434" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:48.794680" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:48.794880" 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-10-15T02:56:48.795098" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:48.795415" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:48.795227" elapsed="0.000339"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:48.795208" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:48.795912" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:48.795657" elapsed="0.000334"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:48.795636" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:48.796261" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:48.796067" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:48.796052" elapsed="0.000283"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:48.793558" elapsed="0.002798"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:48.793336" elapsed="0.003045"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:48.787111" elapsed="0.009389">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:49.805362" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:49.805581" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:49.805915" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:49.799158" elapsed="0.008027">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.808122" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.809554" elapsed="0.000074"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.810243" elapsed="0.000070"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.810947" elapsed="0.000067"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.811675" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.812350" elapsed="0.000065"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.813052" elapsed="0.000091"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.813972" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:49.813351" elapsed="0.000810"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:49.813298" elapsed="0.000941"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.815014" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:49.814404" elapsed="0.000805"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:49.814355" elapsed="0.000926"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:49.816044" elapsed="0.000094"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:49.815443" elapsed="0.000799"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:49.815395" elapsed="0.000920"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:49.808936" elapsed="0.007450"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:49.808354" elapsed="0.008153"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:49.798279" elapsed="0.018513">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:50.825511" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:50.825803" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:50.826122" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:50.819246" elapsed="0.008030">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:50.828199" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:50.829414" elapsed="0.000108"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:50.830103" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:50.830641" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:50.831242" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:50.831791" 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-10-15T02:56:50.832352" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:50.833058" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:50.832619" elapsed="0.000628"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:50.832565" elapsed="0.000752"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:50.833911" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:50.833436" elapsed="0.000595"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:50.833403" elapsed="0.000709"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:50.834714" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:50.834244" elapsed="0.000591"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:50.834199" elapsed="0.000686"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:50.828956" elapsed="0.005992"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:50.828427" elapsed="0.006602"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:50.818255" elapsed="0.017021">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:51.843282" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:51.843405" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:51.843666" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:56:51.837329" elapsed="0.007734">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.845722" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.846676" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.847140" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.847719" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.848181" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.848652" 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-10-15T02:56:51.849123" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.849734" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:51.849313" elapsed="0.000533"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:51.849276" elapsed="0.000623"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.850437" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:51.850012" elapsed="0.000567"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:51.849981" elapsed="0.000646"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.851143" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:56:51.850734" elapsed="0.000521"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:56:51.850703" elapsed="0.000598"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:56:51.846271" elapsed="0.005076"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:56:51.845876" elapsed="0.005524"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:51.836487" elapsed="0.015139">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:56:51.851810" level="FAIL">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:21.366059" elapsed="30.485944">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check Linear Topology.</doc>
<status status="FAIL" start="2026-10-15T02:56:21.365575" elapsed="30.486769">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:51.860598" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:51.860712" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:51.860915" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:51.855797" elapsed="0.005987">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.862373" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.862832" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:51.863311" elapsed="0.000043"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:56:51.855062" elapsed="0.008515">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:52.869664" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:52.869766" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:52.870041" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:52.864967" elapsed="0.005595">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:52.870931" elapsed="0.000028"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:52.871154" elapsed="0.000020"/>
</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-10-15T02:56:52.871365" elapsed="0.000020"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:56:52.864364" elapsed="0.007141">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:53.879929" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:53.880056" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:53.880310" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:53.873427" elapsed="0.008355">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:53.882407" elapsed="0.000080"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:53.882881" 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-10-15T02:56:53.883360" elapsed="0.000129"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:56:53.872413" elapsed="0.011284">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:54.891374" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:54.891484" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:54.891662" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:54.885637" elapsed="0.006647">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:54.892771" elapsed="0.000044"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:54.893180" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:54.893566" elapsed="0.000032"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:56:54.884670" elapsed="0.009162">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:55.901938" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:55.902071" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:55.902333" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:55.895710" elapsed="0.007598">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:55.903982" elapsed="0.000052"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:55.904484" 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-10-15T02:56:55.904965" elapsed="0.000044"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:56:55.894796" elapsed="0.010440">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:56.912787" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:56.912906" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:56.913142" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:56.906997" elapsed="0.007022">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:56.914702" elapsed="0.000053"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:56.915144" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:56.915612" elapsed="0.000043"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:56:56.906159" elapsed="0.009694">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:57.923213" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:57.923331" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:57.923579" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:57.917606" elapsed="0.007442">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:57.925754" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:57.926196" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:57.926666" elapsed="0.000042"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:56:57.916760" elapsed="0.010133">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:58.934025" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:58.934172" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:58.934393" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:58.928730" elapsed="0.006558">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:58.935914" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:58.936367" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:58.936842" elapsed="0.000041"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:56:58.927800" elapsed="0.009281">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:56:59.944065" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:56:59.944215" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:56:59.944471" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:59.938705" elapsed="0.006569">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:59.945824" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:59.946245" elapsed="0.000040"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:56:59.946698" elapsed="0.000045"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:56:59.937997" elapsed="0.008948">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:00.955087" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:00.955249" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:00.955591" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:00.948790" elapsed="0.007737">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:00.957170" elapsed="0.000053"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:00.957661" 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-10-15T02:57:00.958168" elapsed="0.000046"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:00.947869" elapsed="0.010553">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:01.964890" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:01.964969" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:01.965127" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:01.959783" elapsed="0.005937">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:01.966132" elapsed="0.000032"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:01.966397" elapsed="0.000025"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:01.967034" elapsed="0.000031"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:01.959186" elapsed="0.008019">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:02.975150" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:02.975275" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:02.975526" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:02.969013" elapsed="0.007386">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:02.977012" elapsed="0.000049"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:02.977490" 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-10-15T02:57:02.977942" elapsed="0.000042"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:02.968147" elapsed="0.010046">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:03.986322" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:03.986572" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:03.986794" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:03.980067" elapsed="0.007641">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:03.988307" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:03.988759" 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-10-15T02:57:03.989418" elapsed="0.000084"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:03.979161" elapsed="0.010544">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:04.997627" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:04.997746" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:04.997957" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:04.991542" elapsed="0.007394">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:04.999657" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:05.000159" 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-10-15T02:57:05.000708" elapsed="0.000047"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:04.990645" elapsed="0.010308">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:06.008092" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:06.008215" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:06.008387" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:06.002627" elapsed="0.006404">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:06.009499" elapsed="0.000033"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:06.009809" 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-10-15T02:57:06.010130" elapsed="0.000099"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:06.001794" elapsed="0.008569">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:07.018646" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:07.018776" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:07.019018" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:07.012627" elapsed="0.007395">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:07.020710" elapsed="0.000053"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:07.021182" 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-10-15T02:57:07.021689" elapsed="0.000045"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:07.011236" elapsed="0.010699">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:08.029634" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:08.029767" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:08.029981" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:08.023694" elapsed="0.007339">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:08.031859" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:08.032310" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:08.032809" elapsed="0.000043"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:08.022832" elapsed="0.010214">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:09.040848" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:09.040968" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:09.041205" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:09.034888" elapsed="0.007322">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:09.042866" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:09.043342" elapsed="0.000042"/>
</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-10-15T02:57:09.043820" elapsed="0.000043"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:09.033995" elapsed="0.010055">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:10.051904" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:10.052027" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:10.052271" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:10.045846" elapsed="0.007357">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:10.053847" elapsed="0.000051"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:10.054314" 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-10-15T02:57:10.054794" elapsed="0.000042"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:10.044974" elapsed="0.010054">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:11.064018" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:11.064203" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:11.064498" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:11.056906" elapsed="0.008926">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:11.066567" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:11.067016" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:11.067551" elapsed="0.000048"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:11.055979" elapsed="0.011818">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:12.075618" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:12.075751" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:12.076083" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:12.069625" elapsed="0.007359">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:12.077659" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:12.078086" elapsed="0.000065"/>
</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-10-15T02:57:12.078585" elapsed="0.000043"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:12.068729" elapsed="0.010096">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:13.086805" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:13.086928" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:13.087179" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:13.080741" elapsed="0.007355">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:13.088763" elapsed="0.000051"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:13.089219" 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-10-15T02:57:13.089702" elapsed="0.000044"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:13.079834" elapsed="0.010103">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:14.097770" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:14.097890" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:14.098102" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:14.091677" elapsed="0.007369">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:14.099691" elapsed="0.000056"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:14.100159" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:14.100629" elapsed="0.000042"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:14.090821" elapsed="0.010036">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:15.109721" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:15.109980" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:15.110284" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:15.102964" elapsed="0.008905">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:15.112550" elapsed="0.000056"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:15.112986" 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-10-15T02:57:15.113491" elapsed="0.000046"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:15.101845" elapsed="0.011889">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:16.123084" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:16.123243" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:16.123496" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:16.116092" elapsed="0.008281">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:16.124991" elapsed="0.000048"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:16.125434" elapsed="0.000071"/>
</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-10-15T02:57:16.125909" elapsed="0.000041"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:16.114920" elapsed="0.011240">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:17.133861" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:17.133983" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:17.134225" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:17.127988" elapsed="0.007135">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:17.135776" elapsed="0.000049"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:17.136235" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:17.136706" elapsed="0.000128"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:17.127127" elapsed="0.009907">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:18.144305" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:18.144414" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:18.144642" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:18.138678" elapsed="0.006766">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:18.146007" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:18.146411" elapsed="0.000065"/>
</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-10-15T02:57:18.146862" elapsed="0.000038"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:18.137867" elapsed="0.009202">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:19.155370" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:19.155532" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:19.155766" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:19.148793" elapsed="0.007887">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:19.157284" elapsed="0.000049"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:19.157733" elapsed="0.000042"/>
</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-10-15T02:57:19.160858" elapsed="0.000070"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:19.147940" elapsed="0.013285">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:20.168945" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:20.169066" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:20.169304" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:20.162975" elapsed="0.007324">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:20.170906" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:20.171351" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:20.171820" elapsed="0.000042"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:20.162106" elapsed="0.009944">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:21.180251" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:21.180400" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:21.180721" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:21.173883" elapsed="0.007832">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:21.182617" elapsed="0.000071"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:21.183324" 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-10-15T02:57:21.184040" elapsed="0.000053"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:21.172998" elapsed="0.011328">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:22.192665" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:22.192838" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:22.193131" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:22.186287" elapsed="0.008222">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:22.195401" elapsed="0.000108"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:22.196078" elapsed="0.000089"/>
</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-10-15T02:57:22.196820" elapsed="0.000064"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:22.185300" elapsed="0.011890">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:57:22.197488" level="FAIL">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:56:51.853854" elapsed="30.343931">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check Groups after mininet starts.</doc>
<status status="FAIL" start="2026-10-15T02:56:51.852880" elapsed="30.345508">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:22.206283" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:22.206400" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:22.206640" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:22.200852" elapsed="0.006669">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:22.208066" elapsed="0.000049"/>
</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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:22.208583" elapsed="0.000053"/>
</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-10-15T02:57:22.209046" elapsed="0.000042"/>
</kw>
<arg>${all_groups}</arg>
<doc>Check number of groups in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:57:22.200048" elapsed="0.009252">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-10-15T02:57:22.198955" elapsed="0.010645">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:22.212999" elapsed="0.000332"/>
</kw>
<status status="PASS" start="2026-10-15T02:57:22.212519" elapsed="0.000892"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:22.212445" elapsed="0.001053"/>
</if>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:57:22.214545" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:57:22.213885" elapsed="0.000719"/>
</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-10-15T02:57:22.216384" elapsed="0.000322"/>
</kw>
<status status="PASS" start="2026-10-15T02:57:22.215896" elapsed="0.000885"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:22.215858" elapsed="0.000975"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:57:22.222353" 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-10-15T02:57:22.217167" elapsed="0.005342"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:57:22.338123" level="INFO">*** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=29 byte_count=2357 flow_count=1
*** s2 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=46 byte_count=3772 flow_count=1
*** s3 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=30 byte_count=2447 flow_count=1
mininet&gt;</msg>
<msg time="2026-10-15T02:57:22.338334" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=29 byte_count=2357 flow_count=1
*** 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-10-15T02:57:22.222878" elapsed="0.115484"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T02:57:22.338440" elapsed="0.000068"/>
</return>
<msg time="2026-10-15T02:57:22.338642" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=29 byte_count=2357 flow_count=1
*** 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-10-15T02:57:22.215270" elapsed="0.123399"/>
</kw>
<kw name="Get Regexp Matches" owner="String">
<msg time="2026-10-15T02:57:22.339318" level="INFO">${flows} = ['1', '1', '1']</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-10-15T02:57:22.338931" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:57:22.339958" level="INFO">${total_flows} = 3</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-10-15T02:57:22.339540" elapsed="0.000443"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-15T02:57:22.340630" level="FAIL">3.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-10-15T02:57:22.340238" elapsed="0.000528">3.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-10-15T02:57:22.211832" elapsed="0.129035">3.0 != 303.0</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-10-15T02:57:22.210182" elapsed="0.130827">3.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-10-15T02:57:22.342425" level="INFO">${rule} = OUTPUT -p all --source 10.30.171.74 --destination 10.30.171.55 -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 variable.</doc>
<status status="PASS" start="2026-10-15T02:57:22.342124" elapsed="0.000341"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:57:22.343054" level="INFO">${command} = sudo /sbin/iptables -I OUTPUT -p all --source 10.30.171.74 --destination 10.30.171.55 -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-10-15T02:57:22.342652" elapsed="0.000428"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:22.345012" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:22.344755" elapsed="0.000309"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:22.344733" elapsed="0.000354"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:57:22.345404" level="INFO">index=20
host=10.30.171.55
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-10-15T02:57:22.345511" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:57:22.345290" elapsed="0.000247"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:22.346014" level="INFO">Attempting to execute command "sudo /sbin/iptables -I OUTPUT -p all --source 10.30.171.74 --destination 10.30.171.55 -j DROP" on remote system "10.30.171.74" 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-10-15T02:57:22.345725" elapsed="0.000333"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:57:22.346778" 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-10-15T02:57:22.346257" elapsed="0.000547"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:57:22.347636" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:57:22.347706" 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-10-15T02:57:22.347366" elapsed="0.000363"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:57:22.347875" elapsed="0.000307"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:57:22.348955" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:57:23.154182" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:57:22 UTC 2026

  System load:  0.01               Processes:             119
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-38703-72-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-10-15T02:57:22.348724" elapsed="0.805608"/>
</kw>
<msg time="2026-10-15T02:57:23.154408" 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-10-15T02:57:22.348343" elapsed="0.806158"/>
</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-10-15T02:57:22.346999" elapsed="0.807612"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:57:23.155075" level="INFO">Executing command 'sudo /sbin/iptables -I OUTPUT -p all --source 10.30.171.74 --destination 10.30.171.55 -j DROP'.</msg>
<msg time="2026-10-15T02:57:23.178217" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:57:23.178329" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:57:23.178368" 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-10-15T02:57:23.154869" elapsed="0.023521"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:57:23.178568" elapsed="0.000200"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:23.179324" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:57:23.179033" elapsed="0.000331"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:57:23.179651" elapsed="0.000017"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:57:23.179527" elapsed="0.000170"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:23.179502" elapsed="0.000216"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:57:23.179849" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-10-15T02:57:23.179767" elapsed="0.000137"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:23.179753" elapsed="0.000174"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:57:23.179958" elapsed="0.000013"/>
</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-10-15T02:57:23.181384" elapsed="0.000137"/>
</kw>
<msg time="2026-10-15T02:57:23.181573" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:57:23.180722" elapsed="0.000910"/>
</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-10-15T02:57:23.181813" elapsed="0.000031"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:23.181978" elapsed="0.000019"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:57:23.180270" elapsed="0.001785"/>
</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-10-15T02:57:22.344309" elapsed="0.837817"/>
</kw>
<msg time="2026-10-15T02:57:23.182193" 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-10-15T02:57:22.343764" elapsed="0.838484"/>
</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-10-15T02:57:22.343305" elapsed="0.839017"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:57:23.182754" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:57:23.182489" elapsed="0.000291"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:23.184988" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:23.184732" elapsed="0.000311"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:23.184713" elapsed="0.000352"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:57:23.185382" level="INFO">index=20
host=10.30.171.55
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-10-15T02:57:23.185490" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:57:23.185273" elapsed="0.000243"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:23.185993" level="INFO">Attempting to execute command "sudo /sbin/iptables -L -n" on remote system "10.30.171.74" 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-10-15T02:57:23.185704" elapsed="0.000333"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:57:23.186555" 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-10-15T02:57:23.186229" elapsed="0.000351"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:57:23.187399" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:57:23.187485" 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-10-15T02:57:23.187131" elapsed="0.000377"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:57:23.187656" elapsed="0.000285"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:57:23.188725" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:57:23.606495" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:57:22 UTC 2026

  System load:  0.01               Processes:             119
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:57:22 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:57:23.188494" elapsed="0.418212"/>
</kw>
<msg time="2026-10-15T02:57:23.606784" 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-10-15T02:57:23.188102" elapsed="0.418754"/>
</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-10-15T02:57:23.186772" elapsed="0.420184"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:57:23.607435" level="INFO">Executing command 'sudo /sbin/iptables -L -n'.</msg>
<msg time="2026-10-15T02:57:23.630322" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:57:23.630496" 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-10-15T02:57:23.630555" 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-10-15T02:57:23.607233" elapsed="0.023351"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:57:23.630797" elapsed="0.000258"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:23.631826" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:57:23.631424" elapsed="0.000486"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:57:23.632307" elapsed="0.000034"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:57:23.632064" elapsed="0.000369"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:23.632018" elapsed="0.000478"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:57:23.632690" elapsed="0.000040"/>
</return>
<status status="PASS" start="2026-10-15T02:57:23.632569" elapsed="0.000204"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:23.632549" elapsed="0.000256"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:57:23.632847" 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-10-15T02:57:23.634678" elapsed="0.000167"/>
</kw>
<msg time="2026-10-15T02:57:23.634903" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:57:23.633898" elapsed="0.001086"/>
</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-10-15T02:57:23.635256" elapsed="0.000042"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:23.635502" 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-10-15T02:57:23.633301" elapsed="0.002307"/>
</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-10-15T02:57:23.184241" elapsed="0.451464"/>
</kw>
<msg time="2026-10-15T02:57:23.635781" 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-10-15T02:57:23.183483" elapsed="0.452357"/>
</kw>
<msg time="2026-10-15T02:57:23.635979" 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-10-15T02:57:23.182961" elapsed="0.453052"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:23.636629" 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.171.74         10.30.171.55        

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-10-15T02:57:23.636290" elapsed="0.000412"/>
</kw>
<doc>Break and restore controller to mininet connection via iptables.</doc>
<status status="PASS" start="2026-10-15T02:57:22.341825" elapsed="1.294947"/>
</kw>
<doc>Disconnect Mininet.</doc>
<status status="PASS" start="2026-10-15T02:57:22.341361" elapsed="1.295548"/>
</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-10-15T02:57:23.644002" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:23.644073" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:23.644233" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:23.639419" elapsed="0.005385">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:23.645178" elapsed="0.000031"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:23.645606" elapsed="0.000029"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:23.645350" elapsed="0.000329"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:23.645274" elapsed="0.000440"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:23.638981" elapsed="0.006855">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:24.653965" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:24.654086" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:24.654337" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:24.647736" elapsed="0.007518">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:24.655938" elapsed="0.000049"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:24.656665" elapsed="0.000053"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:24.656231" elapsed="0.000560"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:24.656091" elapsed="0.000758"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:24.646822" elapsed="0.010223">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:25.665138" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:25.665311" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:25.665639" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:25.658834" elapsed="0.007801">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:25.667485" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:25.668191" elapsed="0.000067"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:25.667786" elapsed="0.000544"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:25.667658" elapsed="0.000727"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:25.657978" elapsed="0.010670">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:26.675703" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:26.675790" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:26.675937" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:26.670408" elapsed="0.006228">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:26.677047" elapsed="0.000038"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:26.677690" elapsed="0.000045"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:26.677317" elapsed="0.000486"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:26.677203" elapsed="0.000651"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:26.669629" elapsed="0.008400">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:27.686526" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:27.686660" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:27.686912" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:27.680591" elapsed="0.007287">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:27.688585" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:27.689310" elapsed="0.000049"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:27.688882" elapsed="0.000553"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:27.688752" elapsed="0.000773"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:27.679685" elapsed="0.010051">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:28.694900" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:28.694965" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:28.695168" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:28.690856" elapsed="0.004776">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:28.695937" elapsed="0.000025"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:28.696266" elapsed="0.000024"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:28.696077" elapsed="0.000250"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:28.696014" elapsed="0.000339"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:28.690377" elapsed="0.006106">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:29.706090" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:29.706292" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:29.706646" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:29.698520" elapsed="0.009487">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:29.709023" elapsed="0.000082"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:29.710099" elapsed="0.000100"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:29.709522" elapsed="0.000790"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:29.709292" elapsed="0.001107"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:29.697428" elapsed="0.013326">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:30.718650" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:30.718777" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:30.718996" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:30.712684" elapsed="0.007348">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:30.720683" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:30.721342" elapsed="0.000043"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:30.720955" elapsed="0.000525"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:30.720837" elapsed="0.000700"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:30.711800" elapsed="0.009928">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:31.730607" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:31.730843" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:31.731109" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:31.723677" elapsed="0.008435">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:31.732835" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:31.733595" elapsed="0.000050"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:31.733141" elapsed="0.000581"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:31.733005" elapsed="0.000777"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:31.722720" elapsed="0.011276">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:32.740975" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:32.741066" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:32.741257" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:32.735558" elapsed="0.006448">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:32.742584" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:32.743125" elapsed="0.000054"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:32.742819" elapsed="0.000418"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:32.742714" elapsed="0.000567"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:32.734836" elapsed="0.008633">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:33.751509" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:33.751639" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:33.751869" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:33.745349" elapsed="0.007444">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:33.753430" elapsed="0.000085"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:33.754122" elapsed="0.000068"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:33.753751" elapsed="0.000609"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:33.753625" elapsed="0.000799"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:33.744384" elapsed="0.010271">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:34.763336" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:34.763535" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:34.763776" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:34.756838" elapsed="0.008075">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:34.765751" elapsed="0.000058"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:34.766676" elapsed="0.000062"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:34.766106" elapsed="0.000710"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:34.765940" elapsed="0.000944"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:34.755815" elapsed="0.011334">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:35.775761" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:35.775885" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:35.776121" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:35.769129" elapsed="0.007917">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:35.777696" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:35.778357" elapsed="0.000046"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:35.777966" elapsed="0.000534"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:35.777846" elapsed="0.000711"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:35.768219" elapsed="0.010535">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:36.786267" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:36.786390" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:36.786736" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:36.780578" elapsed="0.007069">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:36.788267" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:36.788943" elapsed="0.000042"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:36.788573" elapsed="0.000482"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:36.788419" elapsed="0.000689"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:36.779703" elapsed="0.009623">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:37.797012" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:37.797132" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:37.797392" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:37.791150" elapsed="0.007219">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:37.799051" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:37.799797" elapsed="0.000049"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:37.799366" elapsed="0.000553"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:37.799243" elapsed="0.000730"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:37.790237" elapsed="0.009930">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:38.808065" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:38.808216" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:38.808439" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:38.802012" elapsed="0.007327">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:38.809967" elapsed="0.000047"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:38.810652" elapsed="0.000043"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:38.810257" elapsed="0.000508"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:38.810116" elapsed="0.000701"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:38.801120" elapsed="0.009884">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:39.819405" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:39.819641" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:39.819882" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:39.812889" elapsed="0.008869">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:39.823225" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:39.823899" elapsed="0.000044"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:39.823528" elapsed="0.000486"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:39.823383" elapsed="0.000687"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:39.811969" elapsed="0.012321">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:40.831881" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:40.832000" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:40.832242" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:40.826095" elapsed="0.007029">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:40.833769" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:40.834424" elapsed="0.000068"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:40.834038" elapsed="0.000525"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:40.833918" elapsed="0.000698"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:40.825211" elapsed="0.009593">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:41.843367" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:41.843569" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:41.843839" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:41.836772" elapsed="0.008062">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:41.845596" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:41.846407" elapsed="0.000083"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:41.845929" elapsed="0.000742"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:41.845765" elapsed="0.000974"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:41.835837" elapsed="0.011107">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:42.853145" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:42.853272" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:42.853434" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:42.848412" elapsed="0.005674">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:42.854598" elapsed="0.000035"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:42.855038" elapsed="0.000029"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:42.854797" elapsed="0.000315"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:42.854707" elapsed="0.000445"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:42.847749" elapsed="0.007595">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:43.864308" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:43.864503" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:43.864774" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:43.857319" elapsed="0.008483">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:43.866549" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:43.867275" elapsed="0.000059"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:43.866852" elapsed="0.000574"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:43.866727" elapsed="0.000807"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:43.856284" elapsed="0.011483">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:44.876800" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:44.876928" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:44.877307" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:44.870134" elapsed="0.008132">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:44.878948" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:44.879722" elapsed="0.000049"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:44.879293" elapsed="0.000554"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:44.879113" elapsed="0.000792"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:44.868911" elapsed="0.011197">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:45.888354" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:45.888521" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:45.888757" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:45.882033" elapsed="0.007675">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:45.890401" elapsed="0.000081"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:45.891109" elapsed="0.000044"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:45.890733" elapsed="0.000516"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:45.890596" elapsed="0.000712"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:45.881094" elapsed="0.010446">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:46.900151" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:46.900300" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:46.900558" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:46.894047" elapsed="0.007755">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:46.902560" elapsed="0.000073"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:46.903427" elapsed="0.000154"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:46.902910" elapsed="0.000786"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:46.902776" elapsed="0.001008"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:46.892850" elapsed="0.011157">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:47.912093" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:47.912324" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:47.912585" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:47.905877" elapsed="0.007642">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:47.914110" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:47.914786" elapsed="0.000043"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:47.914394" elapsed="0.000501"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:47.914276" elapsed="0.000674"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:47.905007" elapsed="0.010133">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:48.923155" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:48.923308" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:48.923579" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:48.917099" elapsed="0.007417">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:48.925119" elapsed="0.000047"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:48.925812" elapsed="0.000044"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:48.925416" elapsed="0.000509"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:48.925293" elapsed="0.000688"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:48.916164" elapsed="0.010009">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:49.934353" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:49.934520" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:49.934756" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:49.928168" elapsed="0.007557">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:49.936395" elapsed="0.000081"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:49.937115" elapsed="0.000049"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:49.936716" elapsed="0.000710"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:49.936587" elapsed="0.000939"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:49.927238" elapsed="0.010503">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:50.945868" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:50.945992" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:50.946241" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:50.939787" elapsed="0.007361">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:50.947806" elapsed="0.000049"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:50.948494" elapsed="0.000046"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:50.948076" elapsed="0.000533"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:50.947955" elapsed="0.000709"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:50.938738" elapsed="0.010128">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:51.957690" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:51.957817" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:51.958059" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:51.950750" elapsed="0.008322">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:51.959757" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:51.960441" elapsed="0.000077"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:51.960026" elapsed="0.000567"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:51.959910" elapsed="0.000742"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:51.949820" elapsed="0.011067">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:52.969944" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:52.970187" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:52.970773" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:52.962766" elapsed="0.009110">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:52.972846" elapsed="0.000075"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:52.973680" elapsed="0.000073"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:52.973256" elapsed="0.000569"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:52.973048" elapsed="0.000841"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:52.961818" elapsed="0.012323">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:53.982100" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:53.982234" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:53.982499" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:53.976217" elapsed="0.007177">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:53.983992" elapsed="0.000039"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:53.984554" elapsed="0.000037"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:53.984264" elapsed="0.000380"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:53.984122" elapsed="0.000569"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T02:57:53.975269" elapsed="0.009598">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:57:53.985032" level="FAIL">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:23.638245" elapsed="30.346925">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check no switches in topology.</doc>
<status status="FAIL" start="2026-10-15T02:57:23.637252" elapsed="30.348243">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:53.992616" level="INFO">${rule} = OUTPUT -p all --source 10.30.171.74 --destination 10.30.171.55 -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 variable.</doc>
<status status="PASS" start="2026-10-15T02:57:53.991667" elapsed="0.001021"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:57:53.993991" level="INFO">${command} = sudo /sbin/iptables -D OUTPUT -p all --source 10.30.171.74 --destination 10.30.171.55 -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-10-15T02:57:53.993125" elapsed="0.000925"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.003003" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:53.998161" elapsed="0.005026"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:53.998089" elapsed="0.005218"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:57:54.004249" level="INFO">index=20
host=10.30.171.55
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-10-15T02:57:54.004590" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:57:54.003875" elapsed="0.000886"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:54.006161" level="INFO">Attempting to execute command "sudo /sbin/iptables -D OUTPUT -p all --source 10.30.171.74 --destination 10.30.171.55 -j DROP" on remote system "10.30.171.74" 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-10-15T02:57:54.005265" elapsed="0.001063"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:57:54.007928" 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-10-15T02:57:54.007032" elapsed="0.000959"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:57:54.010320" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:57:54.010516" 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-10-15T02:57:54.009622" elapsed="0.000946"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:57:54.010929" elapsed="0.000835"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:57:54.013127" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:57:54.383641" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:57:22 UTC 2026

  System load:  0.01               Processes:             119
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:57:23 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:57:54.012797" elapsed="0.371046"/>
</kw>
<msg time="2026-10-15T02:57:54.383926" 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-10-15T02:57:54.012179" elapsed="0.371841"/>
</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-10-15T02:57:54.008583" elapsed="0.375543"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:57:54.384686" level="INFO">Executing command 'sudo /sbin/iptables -D OUTPUT -p all --source 10.30.171.74 --destination 10.30.171.55 -j DROP'.</msg>
<msg time="2026-10-15T02:57:54.428101" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:57:54.428443" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:57:54.428575" 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-10-15T02:57:54.384460" elapsed="0.044164"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:57:54.429062" elapsed="0.000575"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:54.430792" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:57:54.430163" elapsed="0.000717"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:57:54.431341" elapsed="0.000035"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:57:54.431044" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:54.430996" elapsed="0.000523"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:57:54.431824" elapsed="0.000061"/>
</return>
<status status="PASS" start="2026-10-15T02:57:54.431642" elapsed="0.000310"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:54.431594" elapsed="0.000407"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:57:54.432068" elapsed="0.000028"/>
</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-10-15T02:57:54.435344" elapsed="0.000344"/>
</kw>
<msg time="2026-10-15T02:57:54.435788" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:57:54.433717" elapsed="0.002209"/>
</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-10-15T02:57:54.436371" elapsed="0.000047"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.436767" elapsed="0.000043"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:57:54.432758" elapsed="0.004184"/>
</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-10-15T02:57:53.997004" elapsed="0.440101"/>
</kw>
<msg time="2026-10-15T02:57:54.437351" 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-10-15T02:57:53.995643" elapsed="0.441843"/>
</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-10-15T02:57:53.994520" elapsed="0.443135"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:57:54.438658" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:57:54.438005" elapsed="0.000712"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.443617" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:54.443013" elapsed="0.000722"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:54.442974" elapsed="0.000810"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:57:54.444478" level="INFO">index=20
host=10.30.171.55
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-10-15T02:57:54.444682" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:57:54.444198" elapsed="0.000539"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:54.445834" level="INFO">Attempting to execute command "sudo /sbin/iptables -L -n" on remote system "10.30.171.74" 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-10-15T02:57:54.445150" elapsed="0.000778"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:57:54.447029" 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-10-15T02:57:54.446338" elapsed="0.000745"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:57:54.448917" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:57:54.449067" 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-10-15T02:57:54.448347" elapsed="0.000770"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:57:54.449493" elapsed="0.000627"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:57:54.452371" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:57:54.873406" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:57:22 UTC 2026

  System load:  0.01               Processes:             119
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:57:54 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:57:54.451825" elapsed="0.421787"/>
</kw>
<msg time="2026-10-15T02:57:54.873709" 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-10-15T02:57:54.450956" elapsed="0.422839"/>
</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-10-15T02:57:54.447549" elapsed="0.426369"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:57:54.874434" level="INFO">Executing command 'sudo /sbin/iptables -L -n'.</msg>
<msg time="2026-10-15T02:57:54.897100" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:57:54.897335" 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-10-15T02:57:54.897393" 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-10-15T02:57:54.874221" elapsed="0.023201"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:57:54.897690" elapsed="0.000295"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:54.898761" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:57:54.898364" elapsed="0.000452"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:57:54.899079" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:57:54.898923" elapsed="0.000218"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:54.898892" elapsed="0.000277"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:57:54.899474" elapsed="0.000035"/>
</return>
<status status="PASS" start="2026-10-15T02:57:54.899336" elapsed="0.000216"/>
</branch>
<status status="PASS" start="2026-10-15T02:57:54.899315" elapsed="0.000269"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:57:54.899626" elapsed="0.000017"/>
</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-10-15T02:57:54.901267" elapsed="0.000404"/>
</kw>
<msg time="2026-10-15T02:57:54.901730" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:57:54.900632" elapsed="0.001177"/>
</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-10-15T02:57:54.902058" elapsed="0.000028"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.902289" 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-10-15T02:57:54.900030" elapsed="0.002364"/>
</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-10-15T02:57:54.442037" elapsed="0.460476"/>
</kw>
<msg time="2026-10-15T02:57:54.902588" 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-10-15T02:57:54.440331" elapsed="0.462316"/>
</kw>
<msg time="2026-10-15T02:57:54.902783" 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-10-15T02:57:54.439138" elapsed="0.463678"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:57:54.903411" 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-10-15T02:57:54.903074" elapsed="0.000429"/>
</kw>
<arg>restore</arg>
<doc>Break and restore controller to mininet connection via iptables.</doc>
<status status="PASS" start="2026-10-15T02:57:53.990573" elapsed="0.913001"/>
</kw>
<doc>Connect Mininet.</doc>
<status status="PASS" start="2026-10-15T02:57:53.988180" elapsed="0.915533"/>
</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-10-15T02:57:54.910149" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:54.910235" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:54.910380" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:54.906126" elapsed="0.004854">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.911336" elapsed="0.000030"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.911919" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.912267" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.912561" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.912832" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.913102" 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-10-15T02:57:54.913403" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.913778" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:54.913535" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:54.913512" elapsed="0.000366"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.914181" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:54.913944" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:54.913924" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:54.914619" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:54.914365" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:54.914346" elapsed="0.000372"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:54.911680" elapsed="0.003067"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:54.911429" elapsed="0.003350"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:57:54.905706" elapsed="0.009194">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:55.924004" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:55.924132" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:55.924395" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:55.917782" elapsed="0.007642">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:55.926081" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:55.927087" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:55.927614" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:55.928079" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:55.928583" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:55.929041" 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-10-15T02:57:55.929565" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:55.930253" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:55.929762" elapsed="0.000623"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:55.929723" elapsed="0.000715"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:55.930995" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:55.930583" elapsed="0.000696"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:55.930550" elapsed="0.000784"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:55.931887" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:55.931478" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:55.931416" elapsed="0.000636"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:55.926683" elapsed="0.005417"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:55.926260" elapsed="0.005893"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:57:55.916789" elapsed="0.015625">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:56.940965" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:56.941087" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:56.941339" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:56.935060" elapsed="0.007178">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.942859" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.943801" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.944259" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.944714" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.945132" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.945593" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.946029" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.946642" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:56.946228" elapsed="0.000523"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:56.946172" elapsed="0.000629"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.947296" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:56.946906" elapsed="0.000500"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:56.946876" elapsed="0.000601"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:56.947957" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:56.947585" elapsed="0.000477"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:56.947554" elapsed="0.000554"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:56.943400" elapsed="0.004752"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:56.943006" elapsed="0.005196"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:57:56.933688" elapsed="0.014737">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:57.957353" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:57.957510" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:57.957868" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:57.950900" elapsed="0.007896">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.959396" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.960349" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.960819" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.961266" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.961721" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.962147" elapsed="0.000038"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.962643" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.963208" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:57.962828" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:57.962792" elapsed="0.000599"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.963903" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:57.963529" elapsed="0.000480"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:57.963497" elapsed="0.000558"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:57.964583" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:57.964158" elapsed="0.000536"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:57.964127" elapsed="0.000614"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:57.959953" elapsed="0.004834"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:57.959590" elapsed="0.005246"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:57:57.949983" elapsed="0.015047">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:58.972704" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:58.972842" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:58.973069" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:58.967118" elapsed="0.006894">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.974707" elapsed="0.000053"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.976142" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.976667" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.977114" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.977598" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.978029" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.978622" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.979232" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:58.978820" elapsed="0.000528"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:58.978782" elapsed="0.000618"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.979920" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:58.979543" elapsed="0.000485"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:58.979509" elapsed="0.000567"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:58.980604" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:58.980180" elapsed="0.000533"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:58.980150" elapsed="0.000609"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:58.975276" elapsed="0.005529"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:58.974861" elapsed="0.005995"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:57:58.966265" elapsed="0.014789">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:57:59.988958" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:57:59.989084" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:57:59.989326" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:57:59.983094" elapsed="0.007110">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:59.990864" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:59.991810" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:59.992265" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:59.992716" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:59.993137" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:59.993605" 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-10-15T02:57:59.994047" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:59.994662" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:59.994249" elapsed="0.000521"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:59.994190" elapsed="0.000632"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:59.995322" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:59.994929" elapsed="0.000502"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:59.994898" elapsed="0.000608"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:57:59.995988" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:57:59.995610" elapsed="0.000483"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:57:59.995580" elapsed="0.000560"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:57:59.991412" elapsed="0.004773"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:57:59.991013" elapsed="0.005242"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:57:59.982278" elapsed="0.014280">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:01.004602" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:01.004725" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:01.004939" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:00.998741" elapsed="0.007135">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:01.006510" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:01.007537" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:01.007983" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:01.008434" elapsed="0.000068"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:01.008894" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:01.009341" 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-10-15T02:58:01.009819" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:01.010405" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:01.010001" elapsed="0.000549"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:01.009964" elapsed="0.000640"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:01.011091" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:01.010713" elapsed="0.000486"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:01.010682" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:01.011780" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:01.011373" elapsed="0.000516"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:01.011343" elapsed="0.000593"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:01.007017" elapsed="0.004964"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:01.006657" elapsed="0.005375"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:00.997879" elapsed="0.014366">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:02.020439" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:02.020603" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:02.020837" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:02.014859" elapsed="0.006877">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:02.022435" elapsed="0.000088"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:02.023377" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:02.023881" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:02.024337" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:02.024796" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:02.025246" 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-10-15T02:58:02.025722" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:02.026310" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:02.025904" elapsed="0.000516"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:02.025868" elapsed="0.000631"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:02.026990" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:02.026609" elapsed="0.000491"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:02.026578" elapsed="0.000569"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:02.027676" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:02.027273" elapsed="0.000514"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:02.027241" elapsed="0.000593"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:02.022981" elapsed="0.004898"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:02.022626" elapsed="0.005303"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:02.014007" elapsed="0.014113">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:03.036067" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:03.036190" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:03.036431" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:03.030161" elapsed="0.007167">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:03.037957" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:03.038901" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:03.039362" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:03.039822" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:03.040272" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:03.040728" 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-10-15T02:58:03.041170" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:03.041785" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:03.041373" elapsed="0.000614"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:03.041335" elapsed="0.000706"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:03.042584" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:03.042152" elapsed="0.000544"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:03.042119" elapsed="0.000625"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:03.043264" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:03.042851" elapsed="0.000526"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:03.042820" elapsed="0.000604"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:03.038519" elapsed="0.004979"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:03.038106" elapsed="0.005445"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:03.029337" elapsed="0.014409">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:04.051913" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:04.052044" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:04.052283" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:04.046021" elapsed="0.007133">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.053840" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.055284" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.055755" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.056185" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.056659" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.057088" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.057570" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.058135" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:04.057753" elapsed="0.000509"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:04.057717" elapsed="0.000597"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.058823" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:04.058423" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:04.058390" elapsed="0.000588"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:04.059503" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:04.059081" elapsed="0.000535"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:04.059051" elapsed="0.000612"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:04.054884" elapsed="0.004827"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:04.053993" elapsed="0.005769"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:04.045183" elapsed="0.014776">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:05.068103" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:05.068351" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:05.068561" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:05.062084" elapsed="0.007090">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:05.069627" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:05.070417" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:05.070861" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:05.071320" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:05.071765" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:05.072087" 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-10-15T02:58:05.072431" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:05.072831" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:05.072581" elapsed="0.000341"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:05.072555" elapsed="0.000401"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:05.073377" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:05.073032" elapsed="0.000481"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:05.073010" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:05.074056" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:05.073677" elapsed="0.000488"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:05.073645" elapsed="0.000567"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:05.070037" elapsed="0.004242"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:05.069728" elapsed="0.004599"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:05.061251" elapsed="0.013276">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:06.082739" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:06.082863" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:06.083078" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:06.076658" elapsed="0.007314">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:06.084622" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:06.085563" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:06.086007" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:06.086586" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:06.087022" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:06.087505" 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-10-15T02:58:06.087952" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:06.088565" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:06.088134" elapsed="0.000543"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:06.088099" elapsed="0.000629"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:06.089213" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:06.088837" elapsed="0.000506"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:06.088806" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:06.089931" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:06.089525" elapsed="0.000516"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:06.089492" elapsed="0.000596"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:06.085138" elapsed="0.004996"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:06.084774" elapsed="0.005411"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:06.075778" elapsed="0.014622">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:07.099351" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:07.099521" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:07.099774" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:07.093167" elapsed="0.007583">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:07.101416" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:07.102428" elapsed="0.000087"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:07.102943" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:07.103423" elapsed="0.000077"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:07.103919" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:07.104397" 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-10-15T02:58:07.104929" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:07.105599" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:07.105124" elapsed="0.000594"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:07.105086" elapsed="0.000688"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:07.106318" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:07.105889" elapsed="0.000546"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:07.105857" elapsed="0.000767"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:07.107163" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:07.106748" elapsed="0.000556"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:07.106714" elapsed="0.000642"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:07.102002" elapsed="0.005403"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:07.101607" elapsed="0.005882"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:07.092223" elapsed="0.015485">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:08.118736" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:08.118925" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:08.119297" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:08.110525" elapsed="0.010241">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.121823" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.123441" elapsed="0.000125"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.124266" elapsed="0.000093"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.125080" elapsed="0.000077"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.125912" elapsed="0.000075"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.126696" elapsed="0.000079"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.127558" elapsed="0.000078"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.128613" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:08.127881" elapsed="0.000929"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:08.127820" elapsed="0.001075"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.129789" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:08.129080" elapsed="0.000895"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:08.129026" elapsed="0.001036"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:08.130990" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:08.130272" elapsed="0.000922"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:08.130192" elapsed="0.001121"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:08.122783" elapsed="0.008619"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:08.122087" elapsed="0.009451"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:08.109271" elapsed="0.022600">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:09.140065" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:09.140220" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:09.140620" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:09.134101" elapsed="0.008130">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:09.142957" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:09.144099" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:09.144632" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:09.145094" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:09.145577" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:09.146005" 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-10-15T02:58:09.146493" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:09.147082" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:09.146681" elapsed="0.000542"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:09.146645" elapsed="0.000658"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:09.147882" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:09.147418" elapsed="0.000583"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:09.147385" elapsed="0.000664"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:09.148588" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:09.148155" elapsed="0.000599"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:09.148125" elapsed="0.000712"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:09.143653" elapsed="0.005235"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:09.143117" elapsed="0.005822"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:09.133179" elapsed="0.015970">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:10.158974" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:10.159081" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:10.159290" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:10.151893" elapsed="0.008157">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:10.160595" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:10.161211" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:10.161558" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:10.161833" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:10.162134" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:10.162579" 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-10-15T02:58:10.163091" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:10.163665" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:10.163291" elapsed="0.000470"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:10.163253" elapsed="0.000552"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:10.164440" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:10.163908" elapsed="0.000651"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:10.163877" elapsed="0.000726"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:10.165031" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:10.164701" elapsed="0.000423"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:10.164674" elapsed="0.000490"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:10.160969" elapsed="0.004237"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:10.160724" elapsed="0.004543"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:10.150726" elapsed="0.014709">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:11.173974" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:11.174144" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:11.174510" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:11.167603" elapsed="0.008145">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:11.176425" elapsed="0.000087"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:11.177556" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:11.178051" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:11.178596" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:11.179115" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:11.179651" 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-10-15T02:58:11.180185" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:11.181339" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:11.180426" elapsed="0.001067"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:11.180384" elapsed="0.001165"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:11.182057" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:11.181665" elapsed="0.000505"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:11.181633" elapsed="0.000587"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:11.182806" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:11.182358" elapsed="0.000612"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:11.182326" elapsed="0.000711"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:11.177071" elapsed="0.006035"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:11.176630" elapsed="0.006547"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:11.166679" elapsed="0.016809">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:12.192964" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:12.193089" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:12.193330" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:12.186231" elapsed="0.007967">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:12.194845" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:12.195779" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:12.196219" elapsed="0.000061"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:12.196702" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:12.197193" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:12.197703" 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-10-15T02:58:12.198161" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:12.198851" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:12.198409" elapsed="0.000561"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:12.198356" elapsed="0.000664"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:12.199626" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:12.199136" elapsed="0.000614"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:12.199102" elapsed="0.000699"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:12.200321" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:12.199914" elapsed="0.000523"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:12.199883" elapsed="0.000635"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:12.195375" elapsed="0.005193"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:12.194991" elapsed="0.005631"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:12.185114" elapsed="0.015733">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:13.206920" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:13.206999" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:13.207141" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:13.202345" elapsed="0.005398">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.208194" elapsed="0.000030"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.208792" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.209067" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.209350" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.209635" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.209910" elapsed="0.000026"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.210187" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.210579" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:13.210319" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:13.210295" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.210983" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:13.210747" elapsed="0.000303"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:13.210727" elapsed="0.000352"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:13.211402" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:13.211145" elapsed="0.000344"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:13.211126" elapsed="0.000393"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:13.208553" elapsed="0.002994"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:13.208306" elapsed="0.003274"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:13.201770" elapsed="0.009930">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:14.221349" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:14.221512" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:14.221772" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:14.214196" elapsed="0.008531">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:14.223381" elapsed="0.000053"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:14.224435" elapsed="0.000078"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:14.224960" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:14.225499" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:14.225982" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:14.226507" 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-10-15T02:58:14.226979" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:14.227607" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:14.227173" elapsed="0.000635"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:14.227124" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:14.228439" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:14.227973" elapsed="0.000606"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:14.227942" elapsed="0.000711"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:14.229284" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:14.228831" elapsed="0.000574"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:14.228731" elapsed="0.000760"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:14.223996" elapsed="0.005563"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:14.223570" elapsed="0.006057"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:14.213179" elapsed="0.016653">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:15.238040" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:15.238167" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:15.238406" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:15.232056" elapsed="0.007252">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:15.239928" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:15.240852" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:15.241343" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:15.241806" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:15.242234" elapsed="0.000067"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:15.242732" 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-10-15T02:58:15.243182" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:15.243820" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:15.243392" elapsed="0.000540"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:15.243355" elapsed="0.000627"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:15.244528" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:15.244095" elapsed="0.000545"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:15.244061" elapsed="0.000626"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:15.245171" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:15.244794" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:15.244762" elapsed="0.000588"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:15.240476" elapsed="0.004920"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:15.240075" elapsed="0.005370"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:15.231102" elapsed="0.014561">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:16.254002" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:16.254309" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:16.254594" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:16.247771" elapsed="0.007763">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:16.256165" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:16.257212" elapsed="0.000089"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:16.257873" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:16.258405" elapsed="0.000074"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:16.258926" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:16.259388" 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-10-15T02:58:16.259880" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:16.261057" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:16.260572" elapsed="0.000611"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:16.260029" elapsed="0.001210"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:16.261818" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:16.261392" elapsed="0.000544"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:16.261357" elapsed="0.000629"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:16.262610" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:16.262095" elapsed="0.000673"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:16.262063" elapsed="0.000774"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:16.256790" elapsed="0.006097"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:16.256351" elapsed="0.006588"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:16.246909" elapsed="0.016235">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:17.270997" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:17.271118" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:17.271356" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:17.265179" elapsed="0.007136">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:17.272978" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:17.274086" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:17.274578" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:17.275110" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:17.275592" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:17.276022" 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-10-15T02:58:17.276514" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:17.277108" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:17.276704" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:17.276668" elapsed="0.000629"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:17.277821" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:17.277410" elapsed="0.000522"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:17.277378" elapsed="0.000600"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:17.278513" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:17.278084" elapsed="0.000542"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:17.278053" elapsed="0.000619"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:17.273707" elapsed="0.005011"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:17.273130" elapsed="0.005640"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:17.264317" elapsed="0.014655">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:18.287475" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:18.287596" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:18.287814" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:18.281227" elapsed="0.007512">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.289285" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.290200" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.290685" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.291134" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.291619" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.291990" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.292385" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.292818" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:18.292547" elapsed="0.000351"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:18.292520" elapsed="0.000418"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.293184" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:18.292994" elapsed="0.000272"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:18.292979" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:18.293712" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:18.293473" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:18.293439" elapsed="0.000381"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:18.289833" elapsed="0.004015"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:18.289436" elapsed="0.004446"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:18.280240" elapsed="0.013775">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:19.304914" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:19.305034" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:19.305281" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:19.296109" elapsed="0.010045">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:19.306823" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:19.307800" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:19.308245" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:19.308731" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:19.309155" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:19.309633" 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-10-15T02:58:19.310072" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:19.310740" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:19.310282" elapsed="0.000578"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:19.310220" elapsed="0.000692"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:19.311433" elapsed="0.000094"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:19.311025" elapsed="0.000585"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:19.310994" elapsed="0.000666"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:19.312149" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:19.311769" elapsed="0.000519"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:19.311737" elapsed="0.000600"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:19.307366" elapsed="0.005017"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:19.306978" elapsed="0.005455"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:19.295278" elapsed="0.017399">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:20.321593" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:20.321685" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:20.322004" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:20.315842" elapsed="0.007070">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:20.323553" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:20.324488" elapsed="0.000067"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:20.324862" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:20.325205" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:20.325701" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:20.326161" 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-10-15T02:58:20.326653" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:20.327197" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:20.326837" elapsed="0.000506"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:20.326802" elapsed="0.000606"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:20.327928" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:20.327576" elapsed="0.000434"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:20.327544" elapsed="0.000515"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:20.328431" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:20.328132" elapsed="0.000400"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:20.328111" elapsed="0.000452"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:20.324071" elapsed="0.004521"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:20.323702" elapsed="0.004924"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:20.314539" elapsed="0.014226">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:21.337110" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:21.337232" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:21.337511" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:21.330742" elapsed="0.007681">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.339083" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.340038" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.340546" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.341006" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.341490" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.341922" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.342517" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.343567" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:21.343112" elapsed="0.000572"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:21.342671" elapsed="0.001064"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.344225" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:21.343846" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:21.343814" elapsed="0.000589"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:21.344999" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:21.344613" elapsed="0.000495"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:21.344571" elapsed="0.000584"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:21.339667" elapsed="0.005533"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:21.339253" elapsed="0.005997"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:21.329900" elapsed="0.015595">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:22.353937" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:22.354059" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:22.354308" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:22.347830" elapsed="0.007357">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.355840" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.356789" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.357229" elapsed="0.000059"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.357703" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.358126" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.358597" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.359034" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.359646" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:22.359216" elapsed="0.000538"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:22.359178" elapsed="0.000627"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.360309" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:22.359913" elapsed="0.000504"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:22.359883" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:22.360972" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:22.360597" elapsed="0.000481"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:22.360567" elapsed="0.000559"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:22.356385" elapsed="0.004786"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:22.355989" elapsed="0.005232"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:22.346914" elapsed="0.014529">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:23.368219" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:23.368360" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:23.368570" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:23.363311" elapsed="0.005929">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.369712" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.370437" elapsed="0.000068"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.370804" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.371202" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.371659" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.371948" elapsed="0.000026"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.372229" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.372693" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:23.372376" elapsed="0.000392"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:23.372350" elapsed="0.000453"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.373111" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:23.372874" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:23.372855" elapsed="0.000355"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:23.373583" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:23.373294" elapsed="0.000384"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:23.373256" elapsed="0.000455"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:23.370077" elapsed="0.003663"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:23.369813" elapsed="0.003960"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:23.362618" elapsed="0.011286">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:24.382316" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:24.382405" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:24.382616" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:24.376109" elapsed="0.007076">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.383789" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.384427" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.384763" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.385112" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.385735" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.386149" elapsed="0.000037"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.386613" elapsed="0.000062"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.387185" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:24.386824" elapsed="0.000486"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:24.386786" elapsed="0.000580"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.387879" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:24.387508" elapsed="0.000478"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:24.387472" elapsed="0.000561"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:24.388581" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:24.388143" elapsed="0.000560"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:24.388109" elapsed="0.000648"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:24.384163" elapsed="0.004647"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:24.383928" elapsed="0.004943"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:24.375178" elapsed="0.013930">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:25.397294" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:25.397422" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:25.397682" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T02:58:25.391251" elapsed="0.007362">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.399214" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.400169" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.400662" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.401090" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.401561" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.401985" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.402482" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.403072" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:25.402687" elapsed="0.000620"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:25.402648" elapsed="0.000716"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.403892" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:25.403508" elapsed="0.000492"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:25.403473" elapsed="0.000574"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.404573" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:25.404151" elapsed="0.000532"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:58:25.404121" elapsed="0.000610"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T02:58:25.399795" elapsed="0.004982"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T02:58:25.399394" elapsed="0.005435"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T02:58:25.390384" elapsed="0.014641">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:58:25.405205" level="FAIL">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:57:54.904764" elapsed="30.500666">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check Linear Topology.</doc>
<status status="FAIL" start="2026-10-15T02:57:54.904098" elapsed="30.501686">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:25.413694" level="INFO">DELETE Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1 
 path_url=/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:25.413796" level="INFO">DELETE Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1 
 status=404, reason=Not Found 
 headers={'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:25.413988" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</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-10-15T02:58:25.408241" elapsed="0.006528">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</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-10-15T02:58:25.415148" elapsed="0.000045"/>
</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-10-15T02:58:25.415568" elapsed="0.000044"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-10-15T02:58:25.407915" elapsed="0.007806">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-10-15T02:58:25.407165" elapsed="0.008669">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</status>
</for>
<doc>Remove some groups and flows while network is down.</doc>
<status status="FAIL" start="2026-10-15T02:58:25.406258" elapsed="0.009854">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</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-10-15T02:58:25.425021" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:25.425131" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:25.425370" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:25.420286" elapsed="0.005903">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.426889" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.427337" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:25.427817" elapsed="0.000042"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:25.419081" elapsed="0.008961">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:26.435612" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:26.435737" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:26.435950" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:26.429831" elapsed="0.007022">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:26.437501" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:26.437931" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:26.438402" elapsed="0.000041"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:26.428966" elapsed="0.009693">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:27.446815" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:27.446939" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:27.447199" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:27.440670" elapsed="0.007435">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:27.448795" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:27.449222" elapsed="0.000042"/>
</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-10-15T02:58:27.449789" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:27.439699" elapsed="0.010342">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:28.456487" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:28.456592" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:28.456776" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:28.451285" elapsed="0.005925">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:28.457543" elapsed="0.000023"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:28.457740" 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-10-15T02:58:28.457951" elapsed="0.000018"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:28.450805" elapsed="0.007256">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:29.465834" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:29.465953" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:29.466184" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:29.459759" elapsed="0.007402">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:29.467807" elapsed="0.000049"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:29.468230" 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-10-15T02:58:29.468726" elapsed="0.000042"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:29.458898" elapsed="0.010057">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:30.476599" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:30.476728" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:30.476942" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:30.470740" elapsed="0.007105">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:30.478491" elapsed="0.000051"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:30.478923" elapsed="0.000042"/>
</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-10-15T02:58:30.479394" elapsed="0.000042"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:30.469875" elapsed="0.009777">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:31.487249" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:31.487527" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:31.487749" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:31.481405" elapsed="0.007257">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:31.489251" elapsed="0.000079"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:31.489738" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:31.490181" elapsed="0.000040"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:31.480567" elapsed="0.009871">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:32.498000" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:32.498125" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:32.498366" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:32.492300" elapsed="0.006965">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:32.499914" elapsed="0.000049"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:32.500367" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:32.500843" elapsed="0.000042"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:32.491403" elapsed="0.009672">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:33.508952" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:33.509076" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:33.509316" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:33.502940" elapsed="0.007847">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:33.511412" elapsed="0.000077"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:33.511871" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:33.512326" elapsed="0.000154"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:33.502030" elapsed="0.010657">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:34.520359" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:34.520518" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:34.520757" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:34.514423" elapsed="0.007302">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:34.522370" elapsed="0.000051"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:34.522823" elapsed="0.000042"/>
</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-10-15T02:58:34.523263" elapsed="0.000062"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:34.513606" elapsed="0.009940">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:35.531675" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:35.531807" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:35.532037" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:35.525403" elapsed="0.007600">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:35.533650" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:35.534080" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:35.534578" elapsed="0.000044"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:35.524515" elapsed="0.010299">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:36.542616" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:36.542740" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:36.542960" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:36.536849" elapsed="0.007107">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:36.544610" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:36.545041" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:36.545535" elapsed="0.000044"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:36.535938" elapsed="0.009833">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:37.553425" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:37.553586" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:37.553807" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:37.547646" elapsed="0.007122">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:37.555377" elapsed="0.000049"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:37.555837" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:37.556948" elapsed="0.000057"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:37.546737" elapsed="0.010477">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:38.566001" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:38.566128" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:38.566367" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:38.559380" elapsed="0.007875">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:38.567937" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:38.568494" elapsed="0.000051"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:38.568985" elapsed="0.000049"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:38.558261" elapsed="0.010978">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:39.579287" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:39.579545" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:39.580023" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:39.571775" elapsed="0.009655">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:39.582381" elapsed="0.000124"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:39.583146" elapsed="0.000083"/>
</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-10-15T02:58:39.583926" elapsed="0.000071"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:39.570520" elapsed="0.013803">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:40.593509" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:40.593663" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:40.593908" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:40.586557" elapsed="0.008278">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:40.595564" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:40.596004" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:40.596497" elapsed="0.000043"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:40.585527" elapsed="0.011219">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:41.605286" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:41.605440" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:41.605713" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:41.598820" elapsed="0.007841">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:41.607283" elapsed="0.000083"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:41.607783" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:41.608240" elapsed="0.000043"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:41.597768" elapsed="0.010758">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:42.614900" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:42.615054" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:42.615216" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:42.610288" elapsed="0.005528">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:42.616202" elapsed="0.000031"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:42.616517" 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-10-15T02:58:42.616803" elapsed="0.000027"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:42.609239" elapsed="0.007717">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:43.624623" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:43.624744" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:43.624962" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:43.618721" elapsed="0.007158">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:43.626549" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:43.626974" elapsed="0.000042"/>
</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-10-15T02:58:43.627471" elapsed="0.000066"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:43.617799" elapsed="0.009929">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:44.635158" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:44.635289" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:44.635588" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:44.629396" elapsed="0.007183">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:44.637219" elapsed="0.000053"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:44.637730" 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-10-15T02:58:44.638203" elapsed="0.000160"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:44.628554" elapsed="0.010055">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:45.646075" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:45.646194" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:45.646434" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:45.640371" elapsed="0.006959">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:45.647934" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:45.648379" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:45.648868" elapsed="0.000042"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:45.639540" elapsed="0.009554">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:46.656842" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:46.656930" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:46.657100" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:46.650931" elapsed="0.006858">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:46.658218" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:46.658544" 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-10-15T02:58:46.658892" elapsed="0.000042"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:46.650049" elapsed="0.009053">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:47.666964" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:47.667090" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:47.667306" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:47.660936" elapsed="0.007602">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:47.669171" elapsed="0.000048"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:47.669647" elapsed="0.000063"/>
</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-10-15T02:58:47.670124" elapsed="0.000042"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:47.660033" elapsed="0.010353">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:48.675430" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:48.675518" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:48.675627" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:48.671424" elapsed="0.004626">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:48.676361" elapsed="0.000022"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:48.676567" elapsed="0.000019"/>
</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-10-15T02:58:48.676767" elapsed="0.000019"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:48.670978" elapsed="0.005895">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:49.685377" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:49.685591" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:49.685853" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:49.678807" elapsed="0.008044">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:49.687583" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:49.688080" 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-10-15T02:58:49.688656" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:49.677854" elapsed="0.011059">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:50.696015" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:50.696102" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:50.696405" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:50.690665" elapsed="0.007061">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:50.698259" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:50.698697" elapsed="0.000042"/>
</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-10-15T02:58:50.699111" elapsed="0.000039"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:50.689779" elapsed="0.009564">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:51.707132" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:51.707255" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:51.707527" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:51.701082" elapsed="0.007317">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:51.709012" elapsed="0.000049"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:51.709480" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:51.709928" elapsed="0.000042"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:51.700187" elapsed="0.009974">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:52.716430" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:52.716513" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:52.716628" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:52.711570" elapsed="0.005600">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:52.717519" elapsed="0.000023"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:52.717713" elapsed="0.000018"/>
</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-10-15T02:58:52.717911" elapsed="0.000018"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:52.710933" elapsed="0.007085">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:53.725699" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:53.725916" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:53.726135" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:53.719785" elapsed="0.007237">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:53.727670" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:53.728086" 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-10-15T02:58:53.728575" elapsed="0.000042"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:53.718917" elapsed="0.009891">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:54.736305" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:54.736508" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:54.736750" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:54.730548" elapsed="0.007194">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:54.738426" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:54.738892" elapsed="0.000058"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:54.739907" elapsed="0.000047"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:54.729707" elapsed="0.010446">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T02:58:55.748815" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:55.749008" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:55.749366" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:55.741996" elapsed="0.008628">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:55.751378" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:55.751887" 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-10-15T02:58:55.752395" elapsed="0.000169"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:55.741081" elapsed="0.011713">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T02:58:55.752992" level="FAIL">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:25.417856" elapsed="30.335341">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-10-15T02:58:25.416756" elapsed="30.336842">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:55.763659" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:58:55.763785" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:58:55.764003" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:55.756884" elapsed="0.008065">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:55.765611" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:55.766063" elapsed="0.000045"/>
</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-10-15T02:58:55.766589" elapsed="0.000046"/>
</kw>
<arg>${less_groups}</arg>
<doc>Check number of groups in the inventory.</doc>
<status status="FAIL" start="2026-10-15T02:58:55.756055" elapsed="0.010782">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-10-15T02:58:55.754551" elapsed="0.012581">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T02:58:55.771233" elapsed="0.000331"/>
</kw>
<status status="PASS" start="2026-10-15T02:58:55.770715" elapsed="0.000928"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:55.770665" elapsed="0.001036"/>
</if>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:58:55.772806" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:58:55.772104" elapsed="0.000760"/>
</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-10-15T02:58:55.774794" elapsed="0.000279"/>
</kw>
<status status="PASS" start="2026-10-15T02:58:55.774207" elapsed="0.000947"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:55.774160" elapsed="0.001049"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T02:58:55.781185" 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-10-15T02:58:55.775630" elapsed="0.005678"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T02:58:55.876242" level="INFO">*** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=45 byte_count=3672 flow_count=1
*** s2 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=78 byte_count=6402 flow_count=1
*** s3 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=46 byte_count=3762 flow_count=1
mininet&gt;</msg>
<msg time="2026-10-15T02:58:55.876413" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=45 byte_count=3672 flow_count=1
*** 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-10-15T02:58:55.781736" elapsed="0.094727"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T02:58:55.876548" elapsed="0.000065"/>
</return>
<msg time="2026-10-15T02:58:55.876780" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=45 byte_count=3672 flow_count=1
*** 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-10-15T02:58:55.773562" elapsed="0.103306"/>
</kw>
<kw name="Get Regexp Matches" owner="String">
<msg time="2026-10-15T02:58:55.877377" level="INFO">${flows} = ['1', '1', '1']</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-10-15T02:58:55.877100" elapsed="0.000301"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:58:55.878015" level="INFO">${total_flows} = 3</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-10-15T02:58:55.877587" elapsed="0.000453"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-15T02:58:55.878907" level="FAIL">3.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-10-15T02:58:55.878283" elapsed="0.000691">3.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-10-15T02:58:55.769925" elapsed="0.109144">3.0 != 300.0</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-10-15T02:58:55.768272" elapsed="0.110933">3.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-10-15T02:58:55.882103" 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-10-15T02:58:55.881771" elapsed="0.000358"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:58:55.882698" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:58:55.882279" elapsed="0.000445"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:58:55.882767" elapsed="0.000031"/>
</return>
<msg time="2026-10-15T02:58:55.882897" 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-10-15T02:58:55.881129" elapsed="0.001791"/>
</kw>
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:58:55.883813" 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-10-15T02:58:55.883493" elapsed="0.000344"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:58:55.884235" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:58:55.883982" elapsed="0.000276"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:58:55.884297" elapsed="0.000026"/>
</return>
<msg time="2026-10-15T02:58:55.884459" 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-10-15T02:58:55.883104" elapsed="0.001378"/>
</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-10-15T02:58:55.885812" 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-10-15T02:58:55.885478" elapsed="0.000360"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:58:55.886256" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:58:55.885990" elapsed="0.000292"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:58:55.886324" elapsed="0.000043"/>
</return>
<msg time="2026-10-15T02:58:55.886486" 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-10-15T02:58:55.885090" elapsed="0.001419"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-10-15T02:58:55.887524" level="INFO">${member_ip} = 10.30.171.74</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-10-15T02:58:55.887233" elapsed="0.000315"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:58:55.888310" level="INFO">index=20
host=10.30.171.55
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-10-15T02:58:55.889934" level="INFO">${current_connection} = index=20
host=10.30.171.55
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-10-15T02:58:55.888178" elapsed="0.001783"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:55.892996" elapsed="0.000074"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:55.892242" elapsed="0.000961"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:55.892221" elapsed="0.001062"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:58:55.893646" level="INFO">index=20
host=10.30.171.55
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-10-15T02:58:55.893881" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:58:55.893540" elapsed="0.000447"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:58:55.894925" level="INFO">Attempting to execute command "/tmp/karaf-0.25.0-SNAPSHOT/bin/stop" on remote system "10.30.171.74" 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-10-15T02:58:55.894275" elapsed="0.000709"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:58:55.895970" 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-10-15T02:58:55.895260" elapsed="0.000816"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:58:55.898375" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:58:55.898566" 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-10-15T02:58:55.897975" elapsed="0.000631"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:58:55.899262" elapsed="0.000484"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:58:55.901148" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:58:56.499959" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:58:56 UTC 2026

  System load:  0.03               Processes:             122
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:57:54 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:58:55.900918" elapsed="0.599219"/>
</kw>
<msg time="2026-10-15T02:58:56.500314" 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-10-15T02:58:55.900429" elapsed="0.600058"/>
</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-10-15T02:58:55.896526" elapsed="0.604116"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:58:56.501589" level="INFO">Executing command '/tmp/karaf-0.25.0-SNAPSHOT/bin/stop'.</msg>
<msg time="2026-10-15T02:58:56.900654" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:58:56.901311" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:58:56.901732" 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-10-15T02:58:56.501088" elapsed="0.400874"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:58:56.902949" elapsed="0.001209"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:58:56.907199" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:58:56.905747" elapsed="0.001574"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:58:56.908102" elapsed="0.000068"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:58:56.907777" elapsed="0.000511"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:56.907721" elapsed="0.000873"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:58:56.909060" elapsed="0.000097"/>
</return>
<status status="PASS" start="2026-10-15T02:58:56.908793" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:56.908759" elapsed="0.000732"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:58:56.909645" elapsed="0.000034"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-10-15T02:58:56.916059" elapsed="0.000267"/>
</kw>
<msg time="2026-10-15T02:58:56.916609" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:58:56.913965" elapsed="0.002887"/>
</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-10-15T02:58:56.919391" elapsed="0.000163"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:56.921697" elapsed="0.000117"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:58:56.910308" elapsed="0.011758"/>
</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-10-15T02:58:55.891701" elapsed="1.031104"/>
</kw>
<msg time="2026-10-15T02:58:56.922928" 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-10-15T02:58:55.891050" elapsed="1.031985"/>
</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-10-15T02:58:55.890614" elapsed="1.032579"/>
</kw>
<msg time="2026-10-15T02:58:56.923276" 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-10-15T02:58:55.890117" elapsed="1.033274"/>
</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-10-15T02:58:56.926211" elapsed="0.000472"/>
</kw>
<msg time="2026-10-15T02:58:56.926794" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:58:56.925040" elapsed="0.001881"/>
</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-10-15T02:58:56.927368" elapsed="0.000047"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:56.927982" elapsed="0.000051"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:58:56.924056" elapsed="0.004109"/>
</kw>
<msg time="2026-10-15T02:58:56.928368" 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-10-15T02:58:55.887752" elapsed="1.040669"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:58:56.929494" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:58:56.928947" elapsed="0.000637"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T02:58:56.929671" elapsed="0.000061"/>
</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-10-15T02:58:55.886845" elapsed="1.043045"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-10-15T02:58:55.886682" elapsed="1.043279"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-10-15T02:58:55.886563" elapsed="1.043463"/>
</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-10-15T02:58:55.884666" elapsed="1.045465"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:58:56.931077" level="INFO">${updated_index_list} = [1]</msg>
<var>${updated_index_list}</var>
<arg>@{index_list}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:58:56.930489" elapsed="0.000641"/>
</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-10-15T02:58:56.931508" elapsed="0.000365"/>
</kw>
<if>
<branch type="IF" condition="not ${confirm}">
<return>
<value>${updated_index_list}</value>
<status status="NOT RUN" start="2026-10-15T02:58:56.932200" elapsed="0.000031"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:58:56.932018" elapsed="0.000270"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:56.931982" elapsed="0.000373"/>
</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-10-15T02:58:56.936412" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:58:56.935681" elapsed="0.000840"/>
</kw>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-10-15T02:58:56.938245" level="INFO">${member_ip} = 10.30.171.74</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-10-15T02:58:56.937787" elapsed="0.000511"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:58:56.940503" level="INFO">index=20
host=10.30.171.55
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-10-15T02:58:56.940749" level="INFO">${current_connection} = index=20
host=10.30.171.55
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-10-15T02:58:56.939726" elapsed="0.001108"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:56.947319" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:56.946908" elapsed="0.000506"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:56.946880" elapsed="0.000566"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:58:56.947901" level="INFO">index=20
host=10.30.171.55
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-10-15T02:58:56.948031" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:58:56.947758" elapsed="0.000308"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:58:56.948964" level="INFO">Attempting to execute command "ps axf | grep org.apache.karaf | grep -v grep | wc -l" on remote system "10.30.171.74" 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-10-15T02:58:56.948398" elapsed="0.000628"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:58:56.949766" 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-10-15T02:58:56.949271" elapsed="0.000530"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:58:56.950996" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:58:56.951094" 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-10-15T02:58:56.950626" elapsed="0.000498"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:58:56.951350" elapsed="0.000430"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:58:56.952878" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:58:57.321599" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:58:56 UTC 2026

  System load:  0.03               Processes:             122
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:58:56 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:58:56.952552" elapsed="0.369196"/>
</kw>
<msg time="2026-10-15T02:58:57.321829" 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-10-15T02:58:56.952007" elapsed="0.369908"/>
</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-10-15T02:58:56.950069" elapsed="0.371950"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:58:57.322566" level="INFO">Executing command 'ps axf | grep org.apache.karaf | grep -v grep | wc -l'.</msg>
<msg time="2026-10-15T02:58:57.345165" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:58:57.345315" level="INFO">${stdout} = 1</msg>
<msg time="2026-10-15T02:58:57.345387" 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-10-15T02:58:57.322314" elapsed="0.023104"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:58:57.345675" elapsed="0.000508"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:58:57.346945" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:58:57.346593" elapsed="0.000407"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:58:57.347253" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:58:57.347101" elapsed="0.000213"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:57.347071" elapsed="0.000287"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:58:57.347558" elapsed="0.000034"/>
</return>
<status status="PASS" start="2026-10-15T02:58:57.347424" elapsed="0.000210"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:57.347405" elapsed="0.000259"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:58:57.347706" elapsed="0.000018"/>
</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-10-15T02:58:57.349521" elapsed="0.000165"/>
</kw>
<msg time="2026-10-15T02:58:57.349741" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:58:57.348687" elapsed="0.001136"/>
</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-10-15T02:58:57.350065" elapsed="0.000027"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:57.350355" elapsed="0.000028"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:58:57.348105" elapsed="0.002376"/>
</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-10-15T02:58:56.945983" elapsed="0.404697"/>
</kw>
<msg time="2026-10-15T02:58:57.350764" 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-10-15T02:58:56.943583" elapsed="0.407585"/>
</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-10-15T02:58:56.942326" elapsed="0.409154"/>
</kw>
<msg time="2026-10-15T02:58:57.351552" 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-10-15T02:58:56.941239" elapsed="0.410376"/>
</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-10-15T02:58:57.353406" elapsed="0.000295"/>
</kw>
<msg time="2026-10-15T02:58:57.353852" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:58:57.352601" elapsed="0.001336"/>
</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-10-15T02:58:57.354405" elapsed="0.000036"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:57.354693" elapsed="0.000027"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:58:57.351998" elapsed="0.002802"/>
</kw>
<msg time="2026-10-15T02:58:57.354918" level="INFO">${output} = 1</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-10-15T02:58:56.938774" elapsed="0.416177"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:58:57.355640" level="INFO">1</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:58:57.355251" elapsed="0.000449"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T02:58:57.355753" elapsed="0.000040"/>
</return>
<msg time="2026-10-15T02:58:57.355930" level="INFO">${count} = 1</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-10-15T02:58:56.936933" elapsed="0.419029"/>
</kw>
<return>
<value>${count}</value>
<status status="PASS" start="2026-10-15T02:58:57.356019" elapsed="0.000036"/>
</return>
<msg time="2026-10-15T02:58:57.356188" level="INFO">${count} = 1</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-10-15T02:58:56.934929" elapsed="0.421290"/>
</kw>
<kw name="Should Be Equal" owner="BuiltIn">
<msg time="2026-10-15T02:58:57.357026" level="FAIL">Found running Karaf count: 1: 0 != 1</msg>
<arg>0</arg>
<arg>${count}</arg>
<arg>Found running Karaf count: ${count}</arg>
<doc>Fails if the given objects are unequal.</doc>
<status status="FAIL" start="2026-10-15T02:58:57.356534" elapsed="0.000585">Found running Karaf count: 1: 0 != 1</status>
</kw>
<arg>member_index=${index}</arg>
<doc>Fail if non-zero karaf instances are counted on member of given index.</doc>
<status status="FAIL" start="2026-10-15T02:58:56.934118" elapsed="0.423136">Found running Karaf count: 1: 0 != 1</status>
</kw>
<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-10-15T02:58:59.361175" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:58:59.360300" elapsed="0.000949"/>
</kw>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-10-15T02:58:59.363571" level="INFO">${member_ip} = 10.30.171.74</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-10-15T02:58:59.362785" elapsed="0.000870"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:58:59.365974" level="INFO">index=20
host=10.30.171.55
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-10-15T02:58:59.366187" level="INFO">${current_connection} = index=20
host=10.30.171.55
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-10-15T02:58:59.365698" elapsed="0.000549"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:59.376154" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:58:59.375077" elapsed="0.001442"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:59.375007" elapsed="0.001610"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:58:59.377697" level="INFO">index=20
host=10.30.171.55
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-10-15T02:58:59.378002" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:58:59.377274" elapsed="0.000811"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:58:59.379849" level="INFO">Attempting to execute command "ps axf | grep org.apache.karaf | grep -v grep | wc -l" on remote system "10.30.171.74" 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-10-15T02:58:59.378772" elapsed="0.001233"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:58:59.381388" 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-10-15T02:58:59.380616" elapsed="0.000861"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:58:59.383655" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:58:59.383877" 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-10-15T02:58:59.382809" elapsed="0.001144"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:58:59.384483" elapsed="0.000949"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:58:59.387917" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:58:59.778704" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:58:56 UTC 2026

  System load:  0.03               Processes:             122
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:58:57 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:58:59.387164" elapsed="0.391683"/>
</kw>
<msg time="2026-10-15T02:58:59.778922" 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-10-15T02:58:59.385982" elapsed="0.393018"/>
</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-10-15T02:58:59.381928" elapsed="0.397172"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:58:59.779610" level="INFO">Executing command 'ps axf | grep org.apache.karaf | grep -v grep | wc -l'.</msg>
<msg time="2026-10-15T02:58:59.802421" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:58:59.802593" level="INFO">${stdout} = 1</msg>
<msg time="2026-10-15T02:58:59.802647" 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-10-15T02:58:59.779391" elapsed="0.023285"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:58:59.802893" elapsed="0.000262"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:58:59.803898" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:58:59.803535" elapsed="0.000417"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:58:59.804225" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:58:59.804059" elapsed="0.000228"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:59.804025" 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-10-15T02:58:59.804541" elapsed="0.000035"/>
</return>
<status status="PASS" start="2026-10-15T02:58:59.804400" elapsed="0.000218"/>
</branch>
<status status="PASS" start="2026-10-15T02:58:59.804380" elapsed="0.000268"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:58:59.804689" 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-10-15T02:58:59.806795" elapsed="0.000172"/>
</kw>
<msg time="2026-10-15T02:58:59.807023" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:58:59.805953" elapsed="0.001154"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:59.807369" elapsed="0.000029"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:59.807602" elapsed="0.000027"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:58:59.805097" elapsed="0.002611"/>
</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-10-15T02:58:59.373315" elapsed="0.434653"/>
</kw>
<msg time="2026-10-15T02:58:59.808055" 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-10-15T02:58:59.369955" elapsed="0.438524"/>
</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-10-15T02:58:59.368547" elapsed="0.440208"/>
</kw>
<msg time="2026-10-15T02:58:59.808809" 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-10-15T02:58:59.366754" elapsed="0.442115"/>
</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-10-15T02:58:59.810609" elapsed="0.000243"/>
</kw>
<msg time="2026-10-15T02:58:59.811000" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:58:59.809812" elapsed="0.001272"/>
</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-10-15T02:58:59.811384" elapsed="0.000030"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:58:59.811634" elapsed="0.000026"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:58:59.809245" elapsed="0.002493"/>
</kw>
<msg time="2026-10-15T02:58:59.811855" level="INFO">${output} = 1</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-10-15T02:58:59.364291" elapsed="0.447597"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:58:59.812671" level="INFO">1</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:58:59.812192" elapsed="0.000546"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T02:58:59.812806" elapsed="0.000050"/>
</return>
<msg time="2026-10-15T02:58:59.813006" level="INFO">${count} = 1</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-10-15T02:58:59.361769" elapsed="0.451270"/>
</kw>
<return>
<value>${count}</value>
<status status="PASS" start="2026-10-15T02:58:59.813097" elapsed="0.000036"/>
</return>
<msg time="2026-10-15T02:58:59.813261" level="INFO">${count} = 1</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-10-15T02:58:59.359176" elapsed="0.454117"/>
</kw>
<kw name="Should Be Equal" owner="BuiltIn">
<msg time="2026-10-15T02:58:59.814073" level="FAIL">Found running Karaf count: 1: 0 != 1</msg>
<arg>0</arg>
<arg>${count}</arg>
<arg>Found running Karaf count: ${count}</arg>
<doc>Fails if the given objects are unequal.</doc>
<status status="FAIL" start="2026-10-15T02:58:59.813592" elapsed="0.000573">Found running Karaf count: 1: 0 != 1</status>
</kw>
<arg>member_index=${index}</arg>
<doc>Fail if non-zero karaf instances are counted on member of given index.</doc>
<status status="FAIL" start="2026-10-15T02:58:59.358051" elapsed="0.456251">Found running Karaf count: 1: 0 != 1</status>
</kw>
<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-10-15T02:59:01.817721" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:01.816993" elapsed="0.000812"/>
</kw>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-10-15T02:59:01.819843" level="INFO">${member_ip} = 10.30.171.74</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-10-15T02:59:01.819292" elapsed="0.000609"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:01.821624" level="INFO">index=20
host=10.30.171.55
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-10-15T02:59:01.821849" level="INFO">${current_connection} = index=20
host=10.30.171.55
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-10-15T02:59:01.821321" elapsed="0.000585"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:01.830275" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:01.829676" elapsed="0.000743"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:01.829625" elapsed="0.000876"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:01.831149" level="INFO">index=20
host=10.30.171.55
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-10-15T02:59:01.831514" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:59:01.830929" elapsed="0.000646"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:01.832697" level="INFO">Attempting to execute command "ps axf | grep org.apache.karaf | grep -v grep | wc -l" on remote system "10.30.171.74" 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-10-15T02:59:01.831997" elapsed="0.000798"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:01.833912" 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-10-15T02:59:01.833186" elapsed="0.000781"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:59:01.835846" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:59:01.836001" 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-10-15T02:59:01.835228" elapsed="0.000824"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:01.836404" elapsed="0.000680"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:59:01.838889" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:59:02.228142" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:58:56 UTC 2026

  System load:  0.03               Processes:             122
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:58:59 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:59:01.838330" elapsed="0.389956"/>
</kw>
<msg time="2026-10-15T02:59:02.228387" 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-10-15T02:59:01.837522" elapsed="0.390964"/>
</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-10-15T02:59:01.834413" elapsed="0.394178"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:59:02.229060" level="INFO">Executing command 'ps axf | grep org.apache.karaf | grep -v grep | wc -l'.</msg>
<msg time="2026-10-15T02:59:02.251998" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:59:02.252191" level="INFO">${stdout} = 1</msg>
<msg time="2026-10-15T02:59:02.252247" 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-10-15T02:59:02.228851" elapsed="0.023426"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:59:02.252599" elapsed="0.000305"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:02.253694" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:02.253253" elapsed="0.000498"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:59:02.254047" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:02.253859" elapsed="0.000251"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:02.253826" elapsed="0.000313"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:59:02.254319" elapsed="0.000059"/>
</return>
<status status="PASS" start="2026-10-15T02:59:02.254206" elapsed="0.000216"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:02.254186" elapsed="0.000292"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:59:02.254524" 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-10-15T02:59:02.256240" elapsed="0.000173"/>
</kw>
<msg time="2026-10-15T02:59:02.256488" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:02.255605" elapsed="0.000969"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:02.256825" elapsed="0.000028"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:02.257040" 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-10-15T02:59:02.254957" elapsed="0.002186"/>
</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-10-15T02:59:01.828201" elapsed="0.429143"/>
</kw>
<msg time="2026-10-15T02:59:02.257723" 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-10-15T02:59:01.824552" elapsed="0.433366"/>
</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-10-15T02:59:01.823293" elapsed="0.434914"/>
</kw>
<msg time="2026-10-15T02:59:02.258260" 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-10-15T02:59:01.822241" elapsed="0.436078"/>
</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-10-15T02:59:02.260665" elapsed="0.000252"/>
</kw>
<msg time="2026-10-15T02:59:02.261067" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:02.259827" elapsed="0.001324"/>
</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-10-15T02:59:02.261627" elapsed="0.000038"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:02.261863" elapsed="0.000027"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:59:02.259036" elapsed="0.002934"/>
</kw>
<msg time="2026-10-15T02:59:02.262084" level="INFO">${output} = 1</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-10-15T02:59:01.820336" elapsed="0.441780"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:02.262793" level="INFO">1</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:02.262438" elapsed="0.000412"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T02:59:02.262904" elapsed="0.000037"/>
</return>
<msg time="2026-10-15T02:59:02.263077" level="INFO">${count} = 1</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-10-15T02:59:01.818318" elapsed="0.444791"/>
</kw>
<return>
<value>${count}</value>
<status status="PASS" start="2026-10-15T02:59:02.263166" elapsed="0.000034"/>
</return>
<msg time="2026-10-15T02:59:02.263331" level="INFO">${count} = 1</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-10-15T02:59:01.816145" elapsed="0.447234"/>
</kw>
<kw name="Should Be Equal" owner="BuiltIn">
<msg time="2026-10-15T02:59:02.264136" level="FAIL">Found running Karaf count: 1: 0 != 1</msg>
<arg>0</arg>
<arg>${count}</arg>
<arg>Found running Karaf count: ${count}</arg>
<doc>Fails if the given objects are unequal.</doc>
<status status="FAIL" start="2026-10-15T02:59:02.263656" elapsed="0.000568">Found running Karaf count: 1: 0 != 1</status>
</kw>
<arg>member_index=${index}</arg>
<doc>Fail if non-zero karaf instances are counted on member of given index.</doc>
<status status="FAIL" start="2026-10-15T02:59:01.815079" elapsed="0.449296">Found running Karaf count: 1: 0 != 1</status>
</kw>
<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-10-15T02:59:04.266972" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:04.266470" elapsed="0.000546"/>
</kw>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-10-15T02:59:04.268516" level="INFO">${member_ip} = 10.30.171.74</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-10-15T02:59:04.268063" elapsed="0.000501"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:04.270064" level="INFO">index=20
host=10.30.171.55
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-10-15T02:59:04.270245" level="INFO">${current_connection} = index=20
host=10.30.171.55
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-10-15T02:59:04.269811" elapsed="0.000491"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:04.276223" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:04.275776" elapsed="0.000549"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:04.275719" elapsed="0.000640"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:04.277115" level="INFO">index=20
host=10.30.171.55
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-10-15T02:59:04.277286" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:59:04.276692" elapsed="0.000650"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:04.278248" level="INFO">Attempting to execute command "ps axf | grep org.apache.karaf | grep -v grep | wc -l" on remote system "10.30.171.74" 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-10-15T02:59:04.277821" elapsed="0.000680"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:04.279255" 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-10-15T02:59:04.278797" elapsed="0.000494"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:59:04.280781" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:59:04.280902" 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-10-15T02:59:04.280260" elapsed="0.000674"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:04.281209" elapsed="0.000518"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:59:04.283080" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:59:04.646153" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:58:56 UTC 2026

  System load:  0.03               Processes:             122
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:59:02 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:59:04.282636" elapsed="0.363663"/>
</kw>
<msg time="2026-10-15T02:59:04.646391" 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-10-15T02:59:04.282019" elapsed="0.364467"/>
</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-10-15T02:59:04.279686" elapsed="0.366906"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:59:04.647069" level="INFO">Executing command 'ps axf | grep org.apache.karaf | grep -v grep | wc -l'.</msg>
<msg time="2026-10-15T02:59:04.669858" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:59:04.670006" level="INFO">${stdout} = 0</msg>
<msg time="2026-10-15T02:59:04.670067" 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-10-15T02:59:04.646857" elapsed="0.023240"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:59:04.670317" elapsed="0.000315"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:04.671345" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:04.670982" elapsed="0.000442"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:59:04.671716" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:04.671548" elapsed="0.000230"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:04.671517" 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-10-15T02:59:04.671989" elapsed="0.000035"/>
</return>
<status status="PASS" start="2026-10-15T02:59:04.671875" elapsed="0.000190"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:04.671853" elapsed="0.000243"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:59:04.672143" 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-10-15T02:59:04.674051" elapsed="0.000166"/>
</kw>
<msg time="2026-10-15T02:59:04.674273" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:04.673175" elapsed="0.001179"/>
</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-10-15T02:59:04.674641" elapsed="0.000028"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:04.674858" elapsed="0.000027"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:59:04.672592" elapsed="0.002371"/>
</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-10-15T02:59:04.274899" elapsed="0.400262"/>
</kw>
<msg time="2026-10-15T02:59:04.675250" 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-10-15T02:59:04.272549" elapsed="0.403151"/>
</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-10-15T02:59:04.271626" elapsed="0.404416"/>
</kw>
<msg time="2026-10-15T02:59:04.676097" 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-10-15T02:59:04.270654" elapsed="0.405503"/>
</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-10-15T02:59:04.677998" elapsed="0.000569"/>
</kw>
<msg time="2026-10-15T02:59:04.678814" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:04.677130" elapsed="0.001917"/>
</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-10-15T02:59:04.679306" elapsed="0.000029"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:04.679576" elapsed="0.000032"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:59:04.676582" elapsed="0.003108"/>
</kw>
<msg time="2026-10-15T02:59:04.679804" 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-10-15T02:59:04.268926" elapsed="0.410910"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:04.680521" level="INFO">0</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:04.680140" elapsed="0.000442"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T02:59:04.680637" elapsed="0.000043"/>
</return>
<msg time="2026-10-15T02:59:04.680822" 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-10-15T02:59:04.267407" elapsed="0.413449"/>
</kw>
<return>
<value>${count}</value>
<status status="PASS" start="2026-10-15T02:59:04.680912" elapsed="0.000036"/>
</return>
<msg time="2026-10-15T02:59:04.681097" 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-10-15T02:59:04.265839" elapsed="0.415294"/>
</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-10-15T02:59:04.681412" elapsed="0.000482"/>
</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-10-15T02:59:04.265001" elapsed="0.416978"/>
</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-10-15T02:58:56.933055" elapsed="7.748982"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-10-15T02:58:56.932711" elapsed="7.749377"/>
</iter>
<var>${index}</var>
<value>@{stop_index_list}</value>
<status status="PASS" start="2026-10-15T02:58:56.932439" elapsed="7.749692"/>
</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-10-15T02:59:04.684011" 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-10-15T02:59:04.683537" elapsed="0.000511"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:59:04.684688" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:59:04.684258" elapsed="0.000464"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:59:04.684777" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T02:59:04.684952" 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-10-15T02:59:04.682980" elapsed="0.002003"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-10-15T02:59:04.686312" level="INFO">${member_ip} = 10.30.171.74</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-10-15T02:59:04.686010" elapsed="0.000336"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:04.687420" level="INFO">index=20
host=10.30.171.55
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-10-15T02:59:04.687569" level="INFO">${current_connection} = index=20
host=10.30.171.55
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-10-15T02:59:04.687249" elapsed="0.000355"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:04.691803" elapsed="0.000102"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:04.690814" elapsed="0.001247"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:04.690789" elapsed="0.001386"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:04.692687" level="INFO">index=20
host=10.30.171.55
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-10-15T02:59:04.693030" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:59:04.692542" elapsed="0.000638"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:04.694597" level="INFO">Attempting to execute command "netstat -pnatu | grep 2550" on remote system "10.30.171.74" 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-10-15T02:59:04.693658" elapsed="0.001023"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:04.696103" 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-10-15T02:59:04.695072" elapsed="0.001181"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:59:04.699718" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:59:04.699974" 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-10-15T02:59:04.698877" elapsed="0.001158"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:04.701155" elapsed="0.000673"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:59:04.703349" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:59:05.077480" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:58:56 UTC 2026

  System load:  0.03               Processes:             122
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:59:04 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:59:04.703112" elapsed="0.374518"/>
</kw>
<msg time="2026-10-15T02:59:05.077771" 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-10-15T02:59:04.702634" elapsed="0.375244"/>
</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-10-15T02:59:04.696951" elapsed="0.381051"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:59:05.078765" level="INFO">Executing command 'netstat -pnatu | grep 2550'.</msg>
<msg time="2026-10-15T02:59:05.091479" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-15T02:59:05.091731" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:59:05.091885" 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-10-15T02:59:05.078350" elapsed="0.013638"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:59:05.092362" elapsed="0.000368"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.094045" 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-10-15T02:59:05.093407" elapsed="0.000698"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.094507" elapsed="0.000037"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:05.094292" elapsed="0.000308"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.094265" elapsed="0.000406"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:59:05.094879" elapsed="0.000042"/>
</return>
<status status="PASS" start="2026-10-15T02:59:05.094756" elapsed="0.000220"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.094741" elapsed="0.000307"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.095117" elapsed="0.000015"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-10-15T02:59:05.098033" elapsed="0.000122"/>
</kw>
<msg time="2026-10-15T02:59:05.098223" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:05.097242" elapsed="0.001074"/>
</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-10-15T02:59:05.099338" elapsed="0.000072"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.100554" elapsed="0.000056"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:59:05.095437" elapsed="0.005306"/>
</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-10-15T02:59:04.689980" elapsed="0.411109"/>
</kw>
<msg time="2026-10-15T02:59:05.101143" 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-10-15T02:59:04.689125" elapsed="0.412066"/>
</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-10-15T02:59:04.688481" elapsed="0.412782"/>
</kw>
<msg time="2026-10-15T02:59:05.101301" 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-10-15T02:59:04.687814" elapsed="0.413531"/>
</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-10-15T02:59:05.102603" elapsed="0.000117"/>
</kw>
<msg time="2026-10-15T02:59:05.102760" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:05.102122" elapsed="0.000694"/>
</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-10-15T02:59:05.102992" elapsed="0.000020"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.103146" 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-10-15T02:59:05.101733" elapsed="0.001488"/>
</kw>
<msg time="2026-10-15T02:59:05.103303" 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-10-15T02:59:04.686663" elapsed="0.416663"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.103980" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:05.103747" elapsed="0.000272"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T02:59:05.104059" elapsed="0.000027"/>
</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-10-15T02:59:04.685443" elapsed="0.418715"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-10-15T02:59:04.685204" elapsed="0.418987"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-10-15T02:59:04.685053" elapsed="0.419169"/>
</for>
<arg>command=netstat -pnatu | grep 2550</arg>
<doc>Cycle through indices (or all), run command on each.</doc>
<status status="PASS" start="2026-10-15T02:59:04.682414" elapsed="0.421868"/>
</kw>
<return>
<value>${updated_index_list}</value>
<status status="PASS" start="2026-10-15T02:59:05.104318" elapsed="0.000024"/>
</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-10-15T02:58:55.880685" elapsed="9.223747"/>
</kw>
<msg time="2026-10-15T02:59:05.104684" level="INFO">${status} = PASS</msg>
<msg time="2026-10-15T02:59:05.104725" 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 errorw.</doc>
<status status="PASS" start="2026-10-15T02:58:55.880158" elapsed="9.224589"/>
</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-10-15T02:59:05.105179" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:05.104822" elapsed="0.000408"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.104799" elapsed="0.000454"/>
</if>
<kw name="Start_Members_From_List_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.107843" level="INFO">${base_command} = /tmp/karaf-0.25.0-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-10-15T02:59:05.107516" elapsed="0.000353"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.108352" level="INFO">${command} = /tmp/karaf-0.25.0-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-10-15T02:59:05.108041" elapsed="0.000351"/>
</kw>
<kw name="Get Current Date" owner="DateTime">
<msg time="2026-10-15T02:59:05.108821" level="INFO">${epoch} = 1792033145.108752</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-10-15T02:59:05.108576" elapsed="0.000270"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.109351" level="INFO">${gc_filepath} = /tmp/karaf-0.25.0-SNAPSHOT/data/log/gc_1792033145.108752.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-10-15T02:59:05.109019" elapsed="0.000372"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.109946" level="INFO">${gc_options} = -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/tmp/karaf-0.25.0-SNAPSHOT/data/log/gc_1792033145.108752.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-10-15T02:59:05.109620" elapsed="0.000353"/>
</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-10-15T02:59:05.111318" 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-10-15T02:59:05.110990" elapsed="0.000353"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.111793" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:59:05.111532" elapsed="0.000285"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:59:05.111858" elapsed="0.000027"/>
</return>
<msg time="2026-10-15T02:59:05.111985" 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-10-15T02:59:05.110639" elapsed="0.001369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-10-15T02:59:05.112925" level="INFO">${member_ip} = 10.30.171.74</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-10-15T02:59:05.112711" elapsed="0.000238"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:05.113703" level="INFO">index=20
host=10.30.171.55
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-10-15T02:59:05.113790" level="INFO">${current_connection} = index=20
host=10.30.171.55
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-10-15T02:59:05.113592" elapsed="0.000223"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.116242" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:05.115980" elapsed="0.000340"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.115962" elapsed="0.000383"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:05.116683" level="INFO">index=20
host=10.30.171.55
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-10-15T02:59:05.116775" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T02:59:05.116579" elapsed="0.000221"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.117432" level="INFO">Attempting to execute command "/tmp/karaf-0.25.0-SNAPSHOT/bin/start -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/tmp/karaf-0.25.0-SNAPSHOT/data/log/gc_1792033145.108752.log" on remote system "10.30.171.74" 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-10-15T02:59:05.116989" elapsed="0.000520"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T02:59:05.118055" level="INFO">${conn_id} = 31</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-10-15T02:59:05.117686" elapsed="0.000394"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.120627" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T02:59:05.120733" 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-10-15T02:59:05.120113" elapsed="0.000704"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:05.121106" elapsed="0.000703"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T02:59:05.123913" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T02:59:05.491219" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 02:58:56 UTC 2026

  System load:  0.03               Processes:             122
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 9%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:59:04 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T02:59:05.123542" elapsed="0.368103"/>
</kw>
<msg time="2026-10-15T02:59:05.491765" 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-10-15T02:59:05.122229" elapsed="0.369669"/>
</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-10-15T02:59:05.118280" elapsed="0.374129"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T02:59:05.493072" level="INFO">Executing command '/tmp/karaf-0.25.0-SNAPSHOT/bin/start -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/tmp/karaf-0.25.0-SNAPSHOT/data/log/gc_1792033145.108752.log'.</msg>
<msg time="2026-10-15T02:59:05.516045" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T02:59:05.516195" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T02:59:05.516249" 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-10-15T02:59:05.492782" elapsed="0.023495"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T02:59:05.516560" elapsed="0.000272"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.517719" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:05.517185" elapsed="0.000590"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.518052" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:05.517886" elapsed="0.000230"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.517853" elapsed="0.000293"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T02:59:05.518326" elapsed="0.000037"/>
</return>
<status status="PASS" start="2026-10-15T02:59:05.518211" elapsed="0.000219"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.518193" elapsed="0.000307"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.518548" 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-10-15T02:59:05.521798" elapsed="0.000395"/>
</kw>
<msg time="2026-10-15T02:59:05.522274" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:05.519668" elapsed="0.002734"/>
</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-10-15T02:59:05.523044" elapsed="0.000032"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.523362" elapsed="0.000048"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:59:05.518968" elapsed="0.004654"/>
</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-10-15T02:59:05.115545" elapsed="0.408181"/>
</kw>
<msg time="2026-10-15T02:59:05.523791" 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-10-15T02:59:05.114883" elapsed="0.408974"/>
</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-10-15T02:59:05.114423" elapsed="0.409530"/>
</kw>
<msg time="2026-10-15T02:59:05.524004" 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-10-15T02:59:05.113964" elapsed="0.410096"/>
</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-10-15T02:59:05.525993" elapsed="0.000166"/>
</kw>
<msg time="2026-10-15T02:59:05.526214" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:05.525173" elapsed="0.001122"/>
</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-10-15T02:59:05.526625" elapsed="0.000032"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.527053" elapsed="0.000034"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T02:59:05.524618" elapsed="0.002554"/>
</kw>
<msg time="2026-10-15T02:59:05.527286" 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-10-15T02:59:05.113144" elapsed="0.414175"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.528034" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:05.527681" elapsed="0.000409"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T02:59:05.528201" elapsed="0.000041"/>
</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-10-15T02:59:05.112314" elapsed="0.416036"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-10-15T02:59:05.112162" elapsed="0.416254"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-10-15T02:59:05.112055" elapsed="0.416434"/>
</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-10-15T02:59:05.110164" elapsed="0.418407"/>
</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-10-15T02:59:05.534354" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:05.533973" elapsed="0.000509"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.533947" elapsed="0.000570"/>
</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-10-15T02:59:05.536468" 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-10-15T02:59:05.535942" elapsed="0.000566"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.537122" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:59:05.536724" elapsed="0.000432"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:59:05.537215" elapsed="0.000038"/>
</return>
<msg time="2026-10-15T02:59:05.537416" 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-10-15T02:59:05.535370" elapsed="0.002099"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.538794" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:05.538362" elapsed="0.000466"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T02:59:05.538886" elapsed="0.000040"/>
</return>
<msg time="2026-10-15T02:59:05.539064" 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-10-15T02:59:05.537914" elapsed="0.001182"/>
</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-10-15T02:59:05.558310" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:05.557727" elapsed="0.000704"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:59:05.560371" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T02:59:05.560010" elapsed="0.000480">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:05.560704" 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-10-15T02:59:05.559512" elapsed="0.001290"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.562707" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:05.562046" elapsed="0.000761"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:59:05.564185" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:59:05.564508" 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-10-15T02:59:05.563878" elapsed="0.000730"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.566134" 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-10-15T02:59:05.565736" 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-10-15T02:59:05.567667" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:05.567277" elapsed="0.000433"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.568150" 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-10-15T02:59:05.567887" elapsed="0.000288"/>
</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-10-15T02:59:05.568503" elapsed="0.000024"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.568741" elapsed="0.000023"/>
</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-10-15T02:59:05.568928" elapsed="0.000020"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T02:59:05.568335" elapsed="0.000646"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.568220" elapsed="0.000795"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T02:59:05.569055" elapsed="0.000030"/>
</return>
<msg time="2026-10-15T02:59:05.569219" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T02:59:05.566888" elapsed="0.002380"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:05.566434" elapsed="0.002873"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.569744" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:05.569365" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.566345" elapsed="0.003534"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.571652" 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-10-15T02:59:05.570900" elapsed="0.000851"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:59:05.571833" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:59:05.555551" elapsed="0.016514"/>
</kw>
<msg time="2026-10-15T02:59:05.572331" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:05.550799" elapsed="0.021597"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.576695" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.580795" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.584754" elapsed="0.000027"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.584936" 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-10-15T02:59:05.585116" 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-10-15T02:59:05.585550" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:05.585360" elapsed="0.000347"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:05.585346" elapsed="0.000387"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.585891" 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-10-15T02:59:05.586076" 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-10-15T02:59:05.586235" elapsed="0.000024"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T02:59:05.585317" elapsed="0.001013"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.585183" elapsed="0.001179"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:05.586560" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.586631" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T02:59:05.586742" 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-10-15T02:59:05.550099" elapsed="0.036667"/>
</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-10-15T02:59:05.588109" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:05.587744" elapsed="0.000516">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:05.588525" 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-10-15T02:59:05.587370" elapsed="0.001180"/>
</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-10-15T02:59:05.588839" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:05.588616" elapsed="0.000276"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.589624" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:05.589122" elapsed="0.000527"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:05.588914" elapsed="0.000769"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.588598" elapsed="0.001105"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.590242" 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-10-15T02:59:05.589860" elapsed="0.000414"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T02:59:05.590324" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T02:59:05.590514" 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-manganese/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-10-15T02:59:05.587073" elapsed="0.003467"/>
</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-10-15T02:59:05.591814" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:05.591427" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:05.592181" 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-10-15T02:59:05.591096" elapsed="0.001109"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T02:59:05.592374" elapsed="0.000041"/>
</return>
<status status="PASS" start="2026-10-15T02:59:05.592270" elapsed="0.000247"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:05.592252" elapsed="0.000299"/>
</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-10-15T02:59:05.592710" 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-10-15T02:59:05.592883" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.592941" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T02:59:05.593067" 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-manganese/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-10-15T02:59:05.590800" elapsed="0.002290"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.594351" 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-10-15T02:59:05.594128" elapsed="0.000281"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:05.594855" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:05.594629" elapsed="0.000266"/>
</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-10-15T02:59:05.598845" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', 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-10-15T02:59:05.595181" elapsed="0.008700">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:05.594956" elapsed="0.009009">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', 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-10-15T02:59:05.604153" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:05.603999" elapsed="0.000214"/>
</branch>
<status status="FAIL" start="2026-10-15T02:59:05.594939" elapsed="0.009297">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', 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-10-15T02:59:05.604783" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.604915" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:05.604880" elapsed="0.000073"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:05.604862" elapsed="0.000112"/>
</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-10-15T02:59:05.605111" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.605176" 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-10-15T02:59:05.593415" elapsed="0.011864">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', 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-10-15T02:59:05.605348" 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-10-15T02:59:05.541825" elapsed="0.063666">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', 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-10-15T02:59:05.605751" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:05.605583" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:05.605566" elapsed="0.000273"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:05.605868" 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-10-15T02:59:05.540956" elapsed="0.065006">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T02:59:05.537700" elapsed="0.068323">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', 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-10-15T02:59:05.537540" elapsed="0.068536">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T02:59:05.534890" elapsed="0.071274">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:05.534591" elapsed="0.071658">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-10-15T02:59:05.534570" elapsed="0.071711">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', 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-10-15T02:59:05.606599" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:05.606345" elapsed="0.000310"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:05.606329" elapsed="0.000348"/>
</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-10-15T02:59:05.533498" elapsed="0.073253">ConnectionError: HTTPConnectionPool(host='10.30.171.74', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.171.74', 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-10-15T02:59:15.614978" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:15.614311" elapsed="0.000803"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:15.614269" elapsed="0.000899"/>
</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-10-15T02:59:15.618307" 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-10-15T02:59:15.617515" elapsed="0.000851"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.619381" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:59:15.618788" elapsed="0.000647"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:59:15.619580" elapsed="0.000070"/>
</return>
<msg time="2026-10-15T02:59:15.619874" 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-10-15T02:59:15.616598" elapsed="0.003329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.622030" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:15.621377" elapsed="0.000710"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T02:59:15.622177" elapsed="0.000059"/>
</return>
<msg time="2026-10-15T02:59:15.622444" 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-10-15T02:59:15.620656" elapsed="0.001893"/>
</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-10-15T02:59:15.657324" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:15.656547" elapsed="0.000958"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:59:15.660049" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T02:59:15.659767" elapsed="0.000375">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:15.660407" 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-10-15T02:59:15.659075" elapsed="0.001538"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.662907" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:15.662005" elapsed="0.001033"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:59:15.664948" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:59:15.665301" 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-10-15T02:59:15.664541" elapsed="0.001051"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.667627" 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-10-15T02:59:15.667040" elapsed="0.000740"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.669622" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:15.669136" elapsed="0.000549"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.670273" 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-10-15T02:59:15.669925" elapsed="0.000381"/>
</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-10-15T02:59:15.670731" elapsed="0.000028"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:15.670980" elapsed="0.000030"/>
</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-10-15T02:59:15.671228" elapsed="0.000026"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T02:59:15.670554" elapsed="0.000745"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T02:59:15.670366" elapsed="0.000971"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T02:59:15.671390" elapsed="0.000038"/>
</return>
<msg time="2026-10-15T02:59:15.671651" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T02:59:15.668607" elapsed="0.003112"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:15.668001" elapsed="0.003769"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:15.672211" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:15.671845" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:15.667907" elapsed="0.004474"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.674811" 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-10-15T02:59:15.673781" elapsed="0.001170"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:59:15.675087" elapsed="0.000077"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:59:15.653663" elapsed="0.021738"/>
</kw>
<msg time="2026-10-15T02:59:15.675825" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:15.644273" elapsed="0.031623"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:15.681003" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:15.684896" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:15.688803" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:15.688981" elapsed="0.000020"/>
</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-10-15T02:59:15.689156" elapsed="0.000018"/>
</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-10-15T02:59:15.689626" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:15.689444" elapsed="0.000330"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:15.689430" 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-10-15T02:59:15.689948" 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-10-15T02:59:15.690121" elapsed="0.000018"/>
</kw>
<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-10-15T02:59:15.690277" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T02:59:15.689399" elapsed="0.000927"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T02:59:15.689263" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:15.690567" elapsed="0.000025"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:15.690641" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T02:59:15.690749" 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-10-15T02:59:15.642911" elapsed="0.047861"/>
</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-10-15T02:59:15.692080" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:15.691733" elapsed="0.000519">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:15.692549" 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-10-15T02:59:15.691364" elapsed="0.001216"/>
</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-10-15T02:59:15.692930" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:15.692659" elapsed="0.000337"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.693805" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:15.693251" elapsed="0.000583"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:15.693023" elapsed="0.000851"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:15.692639" elapsed="0.001260"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.694491" 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-10-15T02:59:15.694096" elapsed="0.000421"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T02:59:15.694562" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T02:59:15.694686" 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-manganese/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-10-15T02:59:15.691064" elapsed="0.003644"/>
</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-10-15T02:59:15.695916" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:15.695590" elapsed="0.000468">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:15.696270" 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-10-15T02:59:15.695241" elapsed="0.001052"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T02:59:15.696534" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-10-15T02:59:15.696357" elapsed="0.000236"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:15.696341" elapsed="0.000274"/>
</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-10-15T02:59:15.696763" elapsed="0.000019"/>
</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-10-15T02:59:15.696930" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T02:59:15.696988" elapsed="0.000014"/>
</return>
<msg time="2026-10-15T02:59:15.697145" 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-manganese/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-10-15T02:59:15.694950" elapsed="0.002218"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.698423" 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-10-15T02:59:15.698201" elapsed="0.000301"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:15.698911" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:15.698695" elapsed="0.000256"/>
</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-10-15T02:59:15.794133" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:59:15.794268" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=401, reason=Unauthorized 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '414'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 401 Unauthorized&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 401 Unauthorized&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;401&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Unauthorized&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:59:15.794713" level="FAIL">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:15.699232" elapsed="0.096214">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:15.699010" elapsed="0.096662">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:15.796072" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:15.795739" elapsed="0.000461"/>
</branch>
<status status="FAIL" start="2026-10-15T02:59:15.698994" elapsed="0.097253">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:15.797341" elapsed="0.000054"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:15.797709" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:15.797634" elapsed="0.000157"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:15.797598" elapsed="0.000236"/>
</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-10-15T02:59:15.798131" elapsed="0.000042"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T02:59:15.798267" elapsed="0.000030"/>
</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-10-15T02:59:15.697514" elapsed="0.101029">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:15.798695" elapsed="0.000033"/>
</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-10-15T02:59:15.627589" elapsed="0.171300">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:15.799409" elapsed="0.000097"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:15.799069" elapsed="0.000536"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:15.799035" elapsed="0.000618"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:15.799717" elapsed="0.000031"/>
</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-10-15T02:59:15.626150" elapsed="0.173764">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T02:59:15.620278" elapsed="0.179836">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T02:59:15.620032" elapsed="0.180199">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T02:59:15.615806" elapsed="0.184606">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:15.615277" elapsed="0.185308">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T02:59:15.615246" elapsed="0.185403">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:15.801206" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:15.800780" elapsed="0.000541"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:15.800747" elapsed="0.000620"/>
</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-10-15T02:59:15.613501" elapsed="0.188100">HTTPError: 401 Client Error: Unauthorized for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:25.810260" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:25.809522" elapsed="0.000875"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:25.809477" elapsed="0.001002"/>
</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-10-15T02:59:25.813715" 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-10-15T02:59:25.812858" elapsed="0.000920"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.814794" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:59:25.814134" elapsed="0.000716"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:59:25.814944" elapsed="0.000068"/>
</return>
<msg time="2026-10-15T02:59:25.815308" 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-10-15T02:59:25.811949" elapsed="0.003421"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.817816" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:25.817063" elapsed="0.000811"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T02:59:25.817965" elapsed="0.000072"/>
</return>
<msg time="2026-10-15T02:59:25.818243" 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-10-15T02:59:25.816234" elapsed="0.002059"/>
</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-10-15T02:59:25.854264" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:25.853347" elapsed="0.001060"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:59:25.857279" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T02:59:25.856966" elapsed="0.000419">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:25.857711" 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-10-15T02:59:25.856112" elapsed="0.001740"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.860520" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:25.859379" elapsed="0.001303"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:59:25.862756" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:59:25.863207" 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-10-15T02:59:25.862264" elapsed="0.001074"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.865666" 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-10-15T02:59:25.864955" elapsed="0.000886"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.867927" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:25.867380" elapsed="0.000609"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.868667" 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-10-15T02:59:25.868234" 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-10-15T02:59:25.869119" elapsed="0.000038"/>
</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-10-15T02:59:25.869384" elapsed="0.000031"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:25.869818" elapsed="0.000031"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T02:59:25.868928" elapsed="0.000976"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T02:59:25.868770" elapsed="0.001177"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T02:59:25.870005" elapsed="0.000049"/>
</return>
<msg time="2026-10-15T02:59:25.870249" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T02:59:25.866805" elapsed="0.003511"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:25.866083" elapsed="0.004287"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:25.870946" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:25.870481" elapsed="0.000572"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:25.865981" elapsed="0.005156"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.873681" 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-10-15T02:59:25.872637" elapsed="0.001183"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:59:25.873931" elapsed="0.000085"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:59:25.849973" elapsed="0.024291"/>
</kw>
<msg time="2026-10-15T02:59:25.874709" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:25.841101" elapsed="0.033686"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:25.881068" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:25.886134" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:25.890050" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:25.890243" elapsed="0.000074"/>
</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-10-15T02:59:25.890500" 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-10-15T02:59:25.890924" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:25.890777" elapsed="0.000298"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:25.890759" 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-10-15T02:59:25.891253" elapsed="0.000019"/>
</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-10-15T02:59:25.891428" elapsed="0.000039"/>
</kw>
<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-10-15T02:59:25.891642" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T02:59:25.890723" elapsed="0.000970"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T02:59:25.890585" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:25.891864" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:25.891933" elapsed="0.000018"/>
</return>
<msg time="2026-10-15T02:59:25.892067" 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-10-15T02:59:25.839578" elapsed="0.052514"/>
</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-10-15T02:59:25.893592" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:25.893144" elapsed="0.000621">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:25.894000" 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-10-15T02:59:25.892772" elapsed="0.001253"/>
</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-10-15T02:59:25.894336" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:25.894092" elapsed="0.000297"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.895110" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:25.894651" elapsed="0.000484"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:25.894414" elapsed="0.000754"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:25.894075" elapsed="0.001113"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.895767" 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-10-15T02:59:25.895362" elapsed="0.000429"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T02:59:25.895855" elapsed="0.000031"/>
</return>
<msg time="2026-10-15T02:59:25.895985" 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-manganese/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-10-15T02:59:25.892401" elapsed="0.003607"/>
</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-10-15T02:59:25.897268" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:25.896930" elapsed="0.000484">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:25.897683" 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-10-15T02:59:25.896606" elapsed="0.001101"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T02:59:25.897877" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-10-15T02:59:25.897773" elapsed="0.000161"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:25.897756" elapsed="0.000200"/>
</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-10-15T02:59:25.898107" elapsed="0.000020"/>
</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-10-15T02:59:25.898325" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T02:59:25.898386" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T02:59:25.898613" 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-manganese/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-10-15T02:59:25.896256" elapsed="0.002383"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.899955" 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-10-15T02:59:25.899719" elapsed="0.000280"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:25.900420" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:25.900194" elapsed="0.000302"/>
</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-10-15T02:59:26.292643" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:59:26.292927" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:59:26.293417" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:25.900808" elapsed="0.393524">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:25.900576" elapsed="0.394063">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:26.295153" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:26.294731" elapsed="0.000591"/>
</branch>
<status status="FAIL" start="2026-10-15T02:59:25.900559" elapsed="0.394815">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:26.296789" elapsed="0.000063"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:26.297099" elapsed="0.000034"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:26.297015" elapsed="0.000178"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:26.296976" elapsed="0.000264"/>
</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-10-15T02:59:26.297672" elapsed="0.000052"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T02:59:26.297830" elapsed="0.000037"/>
</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-10-15T02:59:25.898962" elapsed="0.399105">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:26.298223" elapsed="0.000036"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-10-15T02:59:25.823249" elapsed="0.475184">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:26.299125" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:26.298741" elapsed="0.000539"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:26.298700" elapsed="0.000633"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:26.299404" elapsed="0.000034"/>
</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-10-15T02:59:25.821787" elapsed="0.478028">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T02:59:25.815867" elapsed="0.484088">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T02:59:25.815560" elapsed="0.484514">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T02:59:25.811094" elapsed="0.489164">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:25.810616" elapsed="0.489749">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T02:59:25.810583" elapsed="0.489845">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:26.301120" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:26.300665" elapsed="0.000575"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:26.300627" elapsed="0.000660"/>
</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-10-15T02:59:25.808646" elapsed="0.492799">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:36.309891" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:36.309212" elapsed="0.000816"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:36.309166" elapsed="0.000917"/>
</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-10-15T02:59:36.313257" 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-10-15T02:59:36.312383" elapsed="0.000934"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.314318" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:59:36.313709" elapsed="0.000664"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:59:36.314501" elapsed="0.000074"/>
</return>
<msg time="2026-10-15T02:59:36.314825" 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-10-15T02:59:36.311517" elapsed="0.003359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.317034" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:36.316364" elapsed="0.000724"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T02:59:36.317183" elapsed="0.000063"/>
</return>
<msg time="2026-10-15T02:59:36.317494" 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-10-15T02:59:36.315630" elapsed="0.001918"/>
</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-10-15T02:59:36.352342" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:36.351516" elapsed="0.000995"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:59:36.355093" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T02:59:36.354795" elapsed="0.000391">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:36.355554" 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-10-15T02:59:36.354093" elapsed="0.001616"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.358034" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:36.357092" elapsed="0.001151"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:59:36.360157" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:59:36.360538" 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-10-15T02:59:36.359743" elapsed="0.000947"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.362767" 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-10-15T02:59:36.362188" elapsed="0.000734"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.364954" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:36.364505" elapsed="0.000508"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.365736" 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-10-15T02:59:36.365257" elapsed="0.000514"/>
</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-10-15T02:59:36.366173" elapsed="0.000029"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:36.366428" elapsed="0.000051"/>
</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-10-15T02:59:36.366717" elapsed="0.000027"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T02:59:36.365994" elapsed="0.000796"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T02:59:36.365837" elapsed="0.000992"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T02:59:36.366885" elapsed="0.000045"/>
</return>
<msg time="2026-10-15T02:59:36.367107" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T02:59:36.363937" elapsed="0.003234"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:36.363161" elapsed="0.004060"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:36.367721" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:36.367298" elapsed="0.000526"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:36.363059" elapsed="0.004838"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.370250" 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-10-15T02:59:36.369268" elapsed="0.001120"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:59:36.370536" elapsed="0.000093"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:59:36.348642" elapsed="0.022233"/>
</kw>
<msg time="2026-10-15T02:59:36.371247" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:36.339419" elapsed="0.031902"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:36.377531" elapsed="0.000036"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:36.381413" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:36.385238" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:36.385508" 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-10-15T02:59:36.385706" 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-10-15T02:59:36.386107" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:36.385965" elapsed="0.000296"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:36.385949" elapsed="0.000337"/>
</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-10-15T02:59:36.386441" elapsed="0.000040"/>
</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-10-15T02:59:36.386652" 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-10-15T02:59:36.386816" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T02:59:36.385914" elapsed="0.000950"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T02:59:36.385778" elapsed="0.001110"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:36.387034" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:36.387101" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T02:59:36.387231" 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-10-15T02:59:36.337895" elapsed="0.049361"/>
</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-10-15T02:59:36.388690" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:36.388276" elapsed="0.000572">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:36.389069" 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-10-15T02:59:36.387907" elapsed="0.001187"/>
</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-10-15T02:59:36.389399" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:36.389159" elapsed="0.000317"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.390168" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:36.389713" elapsed="0.000481"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:36.389500" elapsed="0.000726"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:36.389142" elapsed="0.001104"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.390786" 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-10-15T02:59:36.390402" elapsed="0.000409"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T02:59:36.390857" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T02:59:36.390996" 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-manganese/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-10-15T02:59:36.387570" elapsed="0.003450"/>
</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-10-15T02:59:36.392273" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:36.391939" elapsed="0.000484">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:36.392686" 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-10-15T02:59:36.391601" elapsed="0.001108"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T02:59:36.392875" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T02:59:36.392775" elapsed="0.000155"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:36.392758" elapsed="0.000194"/>
</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-10-15T02:59:36.393103" 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-10-15T02:59:36.393316" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T02:59:36.393374" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T02:59:36.393563" 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-manganese/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-10-15T02:59:36.391268" elapsed="0.002321"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.394877" 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-10-15T02:59:36.394647" elapsed="0.000273"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:36.395325" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:36.395105" elapsed="0.000260"/>
</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-10-15T02:59:36.444734" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:59:36.444864" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:59:36.445092" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:36.395685" elapsed="0.049838">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:36.395425" elapsed="0.050209">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:36.445873" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:36.445670" elapsed="0.000265"/>
</branch>
<status status="FAIL" start="2026-10-15T02:59:36.395408" elapsed="0.050550">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:36.446511" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:36.446660" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:36.446621" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:36.446592" 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-10-15T02:59:36.446857" elapsed="0.000019"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T02:59:36.446919" 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-10-15T02:59:36.393912" elapsed="0.053111">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:36.447089" 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-10-15T02:59:36.322352" elapsed="0.124826">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:36.447419" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:36.447261" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:36.447245" elapsed="0.000281"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:36.447620" 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-10-15T02:59:36.320934" elapsed="0.126781">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T02:59:36.315229" elapsed="0.132545">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T02:59:36.314981" elapsed="0.132847">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T02:59:36.310726" elapsed="0.137184">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:36.310196" elapsed="0.137763">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T02:59:36.310164" elapsed="0.137823">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:36.448243" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:36.448047" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:36.448032" elapsed="0.000284"/>
</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-10-15T02:59:36.308333" elapsed="0.140053">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:46.456634" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:46.455987" elapsed="0.000820"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:46.455944" elapsed="0.000917"/>
</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-10-15T02:59:46.459985" 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-10-15T02:59:46.459139" elapsed="0.000905"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.461046" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:59:46.460383" elapsed="0.000718"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:59:46.461194" elapsed="0.000069"/>
</return>
<msg time="2026-10-15T02:59:46.461525" 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-10-15T02:59:46.458253" elapsed="0.003326"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.464059" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:46.463054" elapsed="0.001061"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T02:59:46.464209" elapsed="0.000059"/>
</return>
<msg time="2026-10-15T02:59:46.464511" 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-10-15T02:59:46.462279" elapsed="0.002285"/>
</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-10-15T02:59:46.499062" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:46.498226" elapsed="0.000983"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:59:46.501996" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T02:59:46.501430" elapsed="0.000661">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:46.502353" 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-10-15T02:59:46.500759" elapsed="0.001747"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.504800" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:46.503936" elapsed="0.001215"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:59:46.507067" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:59:46.507411" 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-10-15T02:59:46.506643" elapsed="0.000956"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.509601" 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-10-15T02:59:46.509032" elapsed="0.000744"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.511739" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:46.511208" elapsed="0.000591"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.512396" 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-10-15T02:59:46.512045" elapsed="0.000385"/>
</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-10-15T02:59:46.512883" elapsed="0.000028"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:46.513136" elapsed="0.000031"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:46.513387" elapsed="0.000027"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T02:59:46.512704" elapsed="0.000823"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T02:59:46.512522" elapsed="0.001046"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T02:59:46.513625" elapsed="0.000041"/>
</return>
<msg time="2026-10-15T02:59:46.513864" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T02:59:46.510641" elapsed="0.003288"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:46.510006" elapsed="0.003974"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:46.514431" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:46.514058" elapsed="0.000503"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:46.509907" elapsed="0.004730"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.517179" 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-10-15T02:59:46.516023" elapsed="0.001291"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:59:46.517424" elapsed="0.000110"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:59:46.495226" elapsed="0.022648"/>
</kw>
<msg time="2026-10-15T02:59:46.518235" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:46.485661" elapsed="0.032643"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:46.523898" elapsed="0.000035"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:46.529562" elapsed="0.000048"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:46.535942" elapsed="0.000026"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:46.536211" 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-10-15T02:59:46.536401" 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-10-15T02:59:46.536890" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:46.536732" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:46.536714" elapsed="0.000363"/>
</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-10-15T02:59:46.537252" elapsed="0.000027"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:46.537492" elapsed="0.000029"/>
</kw>
<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-10-15T02:59:46.537728" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T02:59:46.536659" elapsed="0.001123"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T02:59:46.536504" elapsed="0.001304"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:46.537960" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:46.538030" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T02:59:46.538169" 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-10-15T02:59:46.484253" elapsed="0.053941"/>
</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-10-15T02:59:46.539988" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:46.539520" elapsed="0.000651">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:46.540395" 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-10-15T02:59:46.539039" elapsed="0.001382"/>
</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-10-15T02:59:46.540931" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:46.540513" elapsed="0.000477"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.541673" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:46.541205" elapsed="0.000509"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:46.541017" elapsed="0.000729"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:46.540495" elapsed="0.001271"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.542263" 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-10-15T02:59:46.541922" elapsed="0.000365"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T02:59:46.542332" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T02:59:46.542478" 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-manganese/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-10-15T02:59:46.538583" elapsed="0.003918"/>
</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-10-15T02:59:46.543777" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:46.543401" elapsed="0.000540">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:46.544163" 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-10-15T02:59:46.543052" elapsed="0.001135"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T02:59:46.544351" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T02:59:46.544254" elapsed="0.000152"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:46.544236" elapsed="0.000193"/>
</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-10-15T02:59:46.544639" 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-10-15T02:59:46.544872" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T02:59:46.544932" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T02:59:46.545058" 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-manganese/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-10-15T02:59:46.542760" elapsed="0.002322"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.546427" 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-10-15T02:59:46.546165" elapsed="0.000328"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:46.547102" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:46.546696" elapsed="0.000464"/>
</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-10-15T02:59:46.552879" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:59:46.552978" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:59:46.553154" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:46.547509" elapsed="0.006038">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:46.547225" elapsed="0.006402">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:46.553863" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:46.553655" elapsed="0.000271"/>
</branch>
<status status="FAIL" start="2026-10-15T02:59:46.547208" elapsed="0.006740">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:46.554439" elapsed="0.000043"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:46.554583" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:46.554549" elapsed="0.000071"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:46.554533" elapsed="0.000109"/>
</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-10-15T02:59:46.554801" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T02:59:46.554865" 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-10-15T02:59:46.545409" elapsed="0.009557">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:46.555033" elapsed="0.000014"/>
</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-10-15T02:59:46.468856" elapsed="0.086264">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:46.555368" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:46.555206" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:46.555190" elapsed="0.000285"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:46.555542" 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-10-15T02:59:46.467436" elapsed="0.088206">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T02:59:46.461952" elapsed="0.093767">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T02:59:46.461700" elapsed="0.094076">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T02:59:46.457481" elapsed="0.098402">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:46.456980" elapsed="0.098957">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T02:59:46.456948" elapsed="0.099018">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:46.556232" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:46.556028" elapsed="0.000257"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:46.556012" elapsed="0.000294"/>
</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-10-15T02:59:46.455115" elapsed="0.101264">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:56.565431" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:56.564732" elapsed="0.000879"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:56.564687" elapsed="0.000981"/>
</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-10-15T02:59:56.569130" 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-10-15T02:59:56.568106" elapsed="0.001091"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.570318" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T02:59:56.569611" elapsed="0.000770"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T02:59:56.570515" elapsed="0.000082"/>
</return>
<msg time="2026-10-15T02:59:56.570870" 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-10-15T02:59:56.567170" elapsed="0.003758"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.573222" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:56.572554" elapsed="0.000726"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T02:59:56.573378" elapsed="0.000064"/>
</return>
<msg time="2026-10-15T02:59:56.573701" 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-10-15T02:59:56.571708" elapsed="0.002067"/>
</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-10-15T02:59:56.611781" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:56.610725" elapsed="0.001194"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T02:59:56.614624" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T02:59:56.614228" elapsed="0.000495">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:56.615021" 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-10-15T02:59:56.613486" elapsed="0.001683"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.617729" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:56.616833" elapsed="0.001128"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T02:59:56.619940" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T02:59:56.620302" 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-10-15T02:59:56.619487" elapsed="0.000947"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.622783" 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-10-15T02:59:56.622062" elapsed="0.000889"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.624900" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:56.624398" elapsed="0.000567"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.625611" 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-10-15T02:59:56.625214" elapsed="0.000432"/>
</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-10-15T02:59:56.626068" elapsed="0.000029"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:56.626321" elapsed="0.000032"/>
</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-10-15T02:59:56.626732" elapsed="0.000052"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T02:59:56.625885" elapsed="0.000948"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T02:59:56.625711" elapsed="0.001162"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T02:59:56.626930" elapsed="0.000043"/>
</return>
<msg time="2026-10-15T02:59:56.627152" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T02:59:56.623849" elapsed="0.003370"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:56.623189" elapsed="0.004083"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:56.627878" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:56.627351" elapsed="0.000639"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:56.623086" elapsed="0.004979"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.630588" 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-10-15T02:59:56.629526" elapsed="0.001201"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T02:59:56.630862" elapsed="0.000080"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T02:59:56.607774" elapsed="0.023421"/>
</kw>
<msg time="2026-10-15T02:59:56.631616" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T02:59:56.597138" elapsed="0.034555"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:56.637705" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:56.643279" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:56.648826" elapsed="0.000035"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:56.649167" elapsed="0.000029"/>
</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-10-15T02:59:56.649424" elapsed="0.000046"/>
</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-10-15T02:59:56.650031" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:56.649828" elapsed="0.000417"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:56.649806" elapsed="0.000479"/>
</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-10-15T02:59:56.650556" elapsed="0.000034"/>
</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-10-15T02:59:56.650841" elapsed="0.000027"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:56.651077" elapsed="0.000027"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T02:59:56.649739" elapsed="0.001407"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T02:59:56.649544" elapsed="0.001638"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T02:59:56.651390" elapsed="0.000027"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:56.651524" elapsed="0.000026"/>
</return>
<msg time="2026-10-15T02:59:56.651700" 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-10-15T02:59:56.595621" elapsed="0.056114"/>
</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-10-15T02:59:56.653781" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:56.653194" elapsed="0.000814">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:56.654320" 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-10-15T02:59:56.652674" elapsed="0.001682"/>
</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-10-15T02:59:56.654838" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:56.654479" elapsed="0.000437"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.655965" 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 variable.</doc>
<status status="PASS" start="2026-10-15T02:59:56.655215" elapsed="0.000787"/>
</kw>
<status status="PASS" start="2026-10-15T02:59:56.654950" elapsed="0.001101"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:56.654425" elapsed="0.001654"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.656874" 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-10-15T02:59:56.656300" elapsed="0.000610"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T02:59:56.656975" elapsed="0.000040"/>
</return>
<msg time="2026-10-15T02:59:56.657159" 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-manganese/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-10-15T02:59:56.652187" elapsed="0.005004"/>
</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-10-15T02:59:56.659093" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T02:59:56.658605" elapsed="0.000689">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T02:59:56.659647" 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-10-15T02:59:56.658095" elapsed="0.001591"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T02:59:56.659945" elapsed="0.000036"/>
</return>
<status status="PASS" start="2026-10-15T02:59:56.659803" elapsed="0.000222"/>
</branch>
<status status="PASS" start="2026-10-15T02:59:56.659779" elapsed="0.000277"/>
</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-10-15T02:59:56.660268" elapsed="0.000032"/>
</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-10-15T02:59:56.660618" elapsed="0.000031"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T02:59:56.660709" elapsed="0.000022"/>
</return>
<msg time="2026-10-15T02:59:56.660923" 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-manganese/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-10-15T02:59:56.657641" elapsed="0.003316"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.662587" 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-10-15T02:59:56.662305" elapsed="0.000328"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T02:59:56.663068" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T02:59:56.662837" elapsed="0.000272"/>
</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-10-15T02:59:56.669795" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T02:59:56.669897" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T02:59:56.670076" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:56.663403" elapsed="0.007029">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:56.663172" elapsed="0.007385">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:56.670747" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:56.670591" elapsed="0.000230"/>
</branch>
<status status="FAIL" start="2026-10-15T02:59:56.663154" elapsed="0.007690">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:56.671346" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:56.671499" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-10-15T02:59:56.671436" elapsed="0.000107"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:56.671420" elapsed="0.000144"/>
</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-10-15T02:59:56.671702" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T02:59:56.671780" 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-10-15T02:59:56.661396" elapsed="0.010491">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:56.671954" elapsed="0.000019"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-10-15T02:59:56.578864" elapsed="0.093183">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:56.672289" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:56.672131" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:56.672115" elapsed="0.000262"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T02:59:56.672443" elapsed="0.000056"/>
</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-10-15T02:59:56.577339" elapsed="0.095245">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T02:59:56.571303" elapsed="0.101341">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T02:59:56.571042" elapsed="0.101655">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T02:59:56.566317" elapsed="0.106480">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T02:59:56.565810" elapsed="0.107039">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T02:59:56.565775" elapsed="0.107103">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:56.673155" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T02:59:56.672940" elapsed="0.000275"/>
</branch>
<status status="NOT RUN" start="2026-10-15T02:59:56.672925" 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-10-15T02:59:56.563811" elapsed="0.109501">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:06.683314" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:06.682583" elapsed="0.000912"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:06.682534" elapsed="0.001020"/>
</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-10-15T03:00:06.687281" 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-10-15T03:00:06.686239" elapsed="0.001109"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.688677" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:00:06.687779" elapsed="0.000959"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:00:06.688863" elapsed="0.000095"/>
</return>
<msg time="2026-10-15T03:00:06.689209" 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-10-15T03:00:06.685180" elapsed="0.004085"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.692036" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:06.691000" elapsed="0.001119"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:00:06.692259" elapsed="0.000102"/>
</return>
<msg time="2026-10-15T03:00:06.692648" 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-10-15T03:00:06.690074" elapsed="0.002631"/>
</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-10-15T03:00:06.730233" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:06.729222" elapsed="0.001165"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:00:06.733632" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:00:06.733243" elapsed="0.000509">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:06.734088" 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-10-15T03:00:06.732254" elapsed="0.001975"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.737258" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:06.736202" elapsed="0.001492"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:00:06.740030" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:00:06.740445" 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-10-15T03:00:06.739418" elapsed="0.001201"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.743168" 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-10-15T03:00:06.742485" elapsed="0.000868"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.745732" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:06.745246" elapsed="0.000551"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.746659" 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-10-15T03:00:06.746125" elapsed="0.000574"/>
</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-10-15T03:00:06.747250" elapsed="0.000034"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:06.747551" elapsed="0.000033"/>
</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-10-15T03:00:06.747748" elapsed="0.000020"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:00:06.746989" elapsed="0.000812"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:00:06.746774" elapsed="0.001081"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:00:06.747914" elapsed="0.000049"/>
</return>
<msg time="2026-10-15T03:00:06.748107" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:00:06.744595" elapsed="0.003572"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:06.743735" elapsed="0.004471"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:06.748591" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:06.748265" elapsed="0.000406"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:06.743626" elapsed="0.005099"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.750635" 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-10-15T03:00:06.749798" elapsed="0.000963"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:00:06.750881" elapsed="0.000074"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:00:06.725574" elapsed="0.025611"/>
</kw>
<msg time="2026-10-15T03:00:06.751539" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:00:06.717896" elapsed="0.033724"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:06.757370" elapsed="0.000053"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:06.762169" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:06.767139" elapsed="0.000030"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:06.767440" elapsed="0.000069"/>
</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-10-15T03:00:06.767694" 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-10-15T03:00:06.768180" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:06.768028" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:06.767998" elapsed="0.000373"/>
</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-10-15T03:00:06.768564" 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-10-15T03:00:06.768753" 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-10-15T03:00:06.768945" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:00:06.767957" elapsed="0.001039"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:00:06.767780" elapsed="0.001243"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:06.769176" elapsed="0.000031"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:06.769259" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T03:00:06.769403" 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-10-15T03:00:06.715976" elapsed="0.053453"/>
</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-10-15T03:00:06.770991" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:06.770562" elapsed="0.000600">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:06.771410" 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-10-15T03:00:06.770134" elapsed="0.001301"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:06.771802" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:06.771548" elapsed="0.000329"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.772627" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:06.772101" elapsed="0.000551"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:06.771899" elapsed="0.000786"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:06.771530" elapsed="0.001176"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.773260" 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-10-15T03:00:06.772889" elapsed="0.000397"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:00:06.773337" elapsed="0.000031"/>
</return>
<msg time="2026-10-15T03:00:06.773498" 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-manganese/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-10-15T03:00:06.769782" elapsed="0.003742"/>
</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-10-15T03:00:06.774871" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:06.774475" elapsed="0.000552">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:06.775271" 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-10-15T03:00:06.774104" elapsed="0.001192"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:00:06.775551" elapsed="0.000030"/>
</return>
<status status="PASS" start="2026-10-15T03:00:06.775365" elapsed="0.000251"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:06.775347" elapsed="0.000293"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:06.775794" elapsed="0.000020"/>
</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-10-15T03:00:06.776043" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:00:06.776105" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:00:06.776235" 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-manganese/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-10-15T03:00:06.773776" elapsed="0.002482"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.777613" 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-10-15T03:00:06.777330" elapsed="0.000327"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:06.778095" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:06.777859" elapsed="0.000280"/>
</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-10-15T03:00:06.785424" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:00:06.785572" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:00:06.785794" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:06.778443" elapsed="0.007751">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:06.778201" elapsed="0.008083">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:06.786592" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:06.786319" elapsed="0.000338"/>
</branch>
<status status="FAIL" start="2026-10-15T03:00:06.778183" elapsed="0.008496">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:06.787246" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:06.787392" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:00:06.787344" elapsed="0.000090"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:06.787327" elapsed="0.000153"/>
</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-10-15T03:00:06.787635" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:00:06.787700" 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-10-15T03:00:06.776610" elapsed="0.011197">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:06.787901" elapsed="0.000018"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-10-15T03:00:06.698386" elapsed="0.089611">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:06.788248" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:06.788085" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:06.788068" elapsed="0.000292"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:06.788490" 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-10-15T03:00:06.696838" elapsed="0.091759">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:00:06.689699" elapsed="0.098961">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:00:06.689382" elapsed="0.099335">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:00:06.684267" elapsed="0.104537">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:06.683674" elapsed="0.105200">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:00:06.683640" elapsed="0.105265">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:06.789176" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:06.788977" elapsed="0.000251"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:06.788961" elapsed="0.000288"/>
</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-10-15T03:00:06.681563" elapsed="0.107758">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:16.797639" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:16.797001" elapsed="0.000784"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:16.796957" elapsed="0.000880"/>
</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-10-15T03:00:16.801313" 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-10-15T03:00:16.800286" elapsed="0.001091"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.802541" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:00:16.801782" elapsed="0.000838"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:00:16.802746" elapsed="0.000075"/>
</return>
<msg time="2026-10-15T03:00:16.803169" 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-10-15T03:00:16.799331" elapsed="0.003900"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.805537" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:16.804851" elapsed="0.000745"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:00:16.805689" elapsed="0.000061"/>
</return>
<msg time="2026-10-15T03:00:16.805978" 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-10-15T03:00:16.804093" elapsed="0.001951"/>
</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-10-15T03:00:16.837741" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:16.837113" elapsed="0.000735"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:00:16.839801" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:00:16.839395" elapsed="0.000481">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:16.840084" 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-10-15T03:00:16.838908" elapsed="0.001270"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.841815" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:16.841165" elapsed="0.000834"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:00:16.843270" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:00:16.843735" 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-10-15T03:00:16.842972" elapsed="0.000857"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.845303" 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-10-15T03:00:16.844915" 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-10-15T03:00:16.846935" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:16.846626" elapsed="0.000352"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.847415" 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-10-15T03:00:16.847155" elapsed="0.000285"/>
</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-10-15T03:00:16.847853" elapsed="0.000020"/>
</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-10-15T03:00:16.848055" elapsed="0.000022"/>
</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-10-15T03:00:16.848236" elapsed="0.000020"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:00:16.847724" elapsed="0.000564"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:00:16.847601" elapsed="0.000716"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:00:16.848361" elapsed="0.000034"/>
</return>
<msg time="2026-10-15T03:00:16.848541" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:00:16.846160" elapsed="0.002427"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:16.845707" elapsed="0.002917"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:16.848959" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:16.848679" elapsed="0.000353"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:16.845633" elapsed="0.003451"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.850760" 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-10-15T03:00:16.850076" elapsed="0.000778"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:00:16.850946" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:00:16.835004" elapsed="0.016163"/>
</kw>
<msg time="2026-10-15T03:00:16.851425" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:00:16.830300" elapsed="0.021200"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:16.855755" elapsed="0.000027"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:16.859643" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:16.863526" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:16.863758" elapsed="0.000020"/>
</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-10-15T03:00:16.863950" elapsed="0.000019"/>
</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-10-15T03:00:16.864346" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:16.864202" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:16.864188" elapsed="0.000354"/>
</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-10-15T03:00:16.864697" 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-10-15T03:00:16.864873" elapsed="0.000029"/>
</kw>
<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-10-15T03:00:16.865045" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:00:16.864155" elapsed="0.000938"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:00:16.864021" elapsed="0.001096"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:16.865266" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:16.865333" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:00:16.865463" 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-10-15T03:00:16.829370" elapsed="0.036119"/>
</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-10-15T03:00:16.866829" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:16.866474" elapsed="0.000524">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:16.867214" 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-10-15T03:00:16.866118" 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-10-15T03:00:16.867550" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:16.867304" elapsed="0.000299"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.868279" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:16.867820" elapsed="0.000484"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:16.867625" elapsed="0.000711"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:16.867287" elapsed="0.001069"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.868880" 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-10-15T03:00:16.868536" elapsed="0.000382"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:00:16.868963" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T03:00:16.869093" 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-manganese/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-10-15T03:00:16.865796" elapsed="0.003319"/>
</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-10-15T03:00:16.870336" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:16.870005" elapsed="0.000497">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:16.870719" 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-10-15T03:00:16.869677" elapsed="0.001066"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:00:16.870921" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:00:16.870809" elapsed="0.000168"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:16.870792" elapsed="0.000208"/>
</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-10-15T03:00:16.871149" elapsed="0.000020"/>
</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-10-15T03:00:16.871357" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:00:16.871417" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:00:16.871609" 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-manganese/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-10-15T03:00:16.869361" elapsed="0.002271"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.872930" 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-10-15T03:00:16.872681" elapsed="0.000292"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:16.873372" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:16.873157" elapsed="0.000256"/>
</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-10-15T03:00:16.881287" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:00:16.881386" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:00:16.881596" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:16.873720" elapsed="0.008260">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:16.873495" elapsed="0.008561">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:16.882239" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:16.882086" elapsed="0.000211"/>
</branch>
<status status="FAIL" start="2026-10-15T03:00:16.873477" elapsed="0.008842">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:16.882818" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:16.882958" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:00:16.882923" elapsed="0.000074"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:16.882906" elapsed="0.000110"/>
</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-10-15T03:00:16.883150" elapsed="0.000019"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:00:16.883211" 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-10-15T03:00:16.871956" elapsed="0.011354">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:16.883374" elapsed="0.000014"/>
</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-10-15T03:00:16.811592" elapsed="0.071891">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:16.883729" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:16.883568" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:16.883553" elapsed="0.000261"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:16.883875" elapsed="0.000028"/>
</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-10-15T03:00:16.810007" elapsed="0.073974">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:00:16.803707" elapsed="0.080332">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:00:16.803388" elapsed="0.080701">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:00:16.798511" elapsed="0.085658">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:16.797970" elapsed="0.086245">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:00:16.797938" elapsed="0.086305">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:16.884528" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:16.884302" elapsed="0.000278"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:16.884287" 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-10-15T03:00:16.796127" elapsed="0.088544">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:26.893008" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:26.892359" elapsed="0.000787"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:26.892317" elapsed="0.000883"/>
</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-10-15T03:00:26.896364" 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-10-15T03:00:26.895515" elapsed="0.000909"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.897417" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:00:26.896794" elapsed="0.000712"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:00:26.897639" elapsed="0.000076"/>
</return>
<msg time="2026-10-15T03:00:26.897990" 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-10-15T03:00:26.894637" elapsed="0.003414"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.900394" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:26.899684" elapsed="0.000800"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:00:26.900585" elapsed="0.000064"/>
</return>
<msg time="2026-10-15T03:00:26.900870" 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-10-15T03:00:26.898829" elapsed="0.002097"/>
</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-10-15T03:00:26.937838" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:26.936973" elapsed="0.001023"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:00:26.940692" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:00:26.940354" elapsed="0.000437">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:26.941088" 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-10-15T03:00:26.939415" elapsed="0.001806"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.943779" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:26.942740" elapsed="0.001265"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:00:26.946150" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:00:26.946566" 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-10-15T03:00:26.945681" elapsed="0.001024"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.948917" 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-10-15T03:00:26.948268" elapsed="0.000840"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.951057" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:26.950677" elapsed="0.000445"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.951871" 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-10-15T03:00:26.951370" elapsed="0.000537"/>
</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-10-15T03:00:26.952331" elapsed="0.000031"/>
</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-10-15T03:00:26.952639" elapsed="0.000035"/>
</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-10-15T03:00:26.952906" elapsed="0.000029"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:00:26.952149" elapsed="0.000853"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:00:26.951991" elapsed="0.001054"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:00:26.953102" elapsed="0.000041"/>
</return>
<msg time="2026-10-15T03:00:26.953325" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:00:26.950082" elapsed="0.003312"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:26.949343" elapsed="0.004149"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:26.954004" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:26.953593" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:26.949244" elapsed="0.004950"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.956707" 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-10-15T03:00:26.955684" elapsed="0.001162"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:00:26.956983" elapsed="0.000083"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:00:26.933754" elapsed="0.023598"/>
</kw>
<msg time="2026-10-15T03:00:26.957762" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:00:26.923152" elapsed="0.034685"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:26.962770" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:26.966662" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:26.970616" elapsed="0.000026"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:26.970833" elapsed="0.000020"/>
</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-10-15T03:00:26.971034" elapsed="0.000019"/>
</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-10-15T03:00:26.971426" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:26.971285" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:26.971272" 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-10-15T03:00:26.971840" 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-10-15T03:00:26.972049" 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-10-15T03:00:26.972220" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:00:26.971243" elapsed="0.001028"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:00:26.971104" elapsed="0.001192"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:26.972462" elapsed="0.000027"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:26.972542" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:00:26.972653" 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-10-15T03:00:26.921758" elapsed="0.050921"/>
</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-10-15T03:00:26.974036" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:26.973674" elapsed="0.000514">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:26.974409" 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-10-15T03:00:26.973306" elapsed="0.001130"/>
</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-10-15T03:00:26.974766" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:26.974534" elapsed="0.000286"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.975555" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:26.975053" elapsed="0.000529"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:26.974843" elapsed="0.000773"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:26.974515" elapsed="0.001121"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.976168" 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-10-15T03:00:26.975794" elapsed="0.000401"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:00:26.976242" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T03:00:26.976372" 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-manganese/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-10-15T03:00:26.972997" elapsed="0.003399"/>
</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-10-15T03:00:26.977717" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:26.977337" elapsed="0.000526">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:26.978105" 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-10-15T03:00:26.977000" elapsed="0.001130"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:00:26.978309" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-10-15T03:00:26.978199" elapsed="0.000167"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:26.978181" elapsed="0.000208"/>
</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-10-15T03:00:26.978623" 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-10-15T03:00:26.978843" elapsed="0.000030"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:00:26.978916" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:00:26.979066" 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-manganese/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-10-15T03:00:26.976683" elapsed="0.002407"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.980417" 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-10-15T03:00:26.980179" elapsed="0.000307"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:26.980978" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:26.980692" elapsed="0.000341"/>
</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-10-15T03:00:26.986762" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:00:26.986866" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:00:26.987063" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:26.981354" elapsed="0.006069">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:26.981098" elapsed="0.006446">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:26.987732" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:26.987577" elapsed="0.000217"/>
</branch>
<status status="FAIL" start="2026-10-15T03:00:26.981081" elapsed="0.006736">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:26.988328" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:26.988477" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:00:26.988420" elapsed="0.000109"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:26.988404" elapsed="0.000147"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:26.988694" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:00:26.988761" 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-10-15T03:00:26.979406" elapsed="0.009456">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:26.988928" 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-10-15T03:00:26.906071" elapsed="0.082967">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:26.989289" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:26.989128" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:26.989110" elapsed="0.000269"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:26.989444" elapsed="0.000041"/>
</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-10-15T03:00:26.904540" elapsed="0.085035">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:00:26.898429" elapsed="0.091208">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:00:26.898166" elapsed="0.091525">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:00:26.893809" elapsed="0.095968">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:26.893311" elapsed="0.096518">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:00:26.893280" elapsed="0.096578">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:26.990146" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:26.989923" elapsed="0.000278"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:26.989907" 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-10-15T03:00:26.891523" elapsed="0.098774">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:36.998497" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:36.997858" elapsed="0.000776"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:36.997815" elapsed="0.000873"/>
</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-10-15T03:00:37.001777" 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-10-15T03:00:37.000924" elapsed="0.000913"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.002840" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:00:37.002203" elapsed="0.000692"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:00:37.002990" elapsed="0.000091"/>
</return>
<msg time="2026-10-15T03:00:37.003310" 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-10-15T03:00:37.000073" elapsed="0.003288"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.005498" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:37.004844" elapsed="0.000711"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:00:37.005650" elapsed="0.000060"/>
</return>
<msg time="2026-10-15T03:00:37.005920" 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-10-15T03:00:37.004093" elapsed="0.001878"/>
</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-10-15T03:00:37.043821" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:37.042435" elapsed="0.001631"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:00:37.048197" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:00:37.047736" elapsed="0.000607">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:37.048959" 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-10-15T03:00:37.046625" elapsed="0.002568"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.052342" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:37.051495" elapsed="0.001088"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:00:37.054547" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:00:37.054900" 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-10-15T03:00:37.054110" elapsed="0.000940"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.057171" 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-10-15T03:00:37.056580" elapsed="0.000748"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.059309" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:37.058964" elapsed="0.000404"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.060004" 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-10-15T03:00:37.059630" elapsed="0.000423"/>
</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-10-15T03:00:37.060494" elapsed="0.000029"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:37.060751" elapsed="0.000031"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:37.061000" elapsed="0.000026"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:00:37.060274" elapsed="0.000814"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:00:37.060120" elapsed="0.001006"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:00:37.061181" elapsed="0.000043"/>
</return>
<msg time="2026-10-15T03:00:37.061401" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:00:37.058225" elapsed="0.003265"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:37.057603" elapsed="0.003941"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:37.061987" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:37.061620" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:37.057499" elapsed="0.004682"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.064532" 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-10-15T03:00:37.063566" elapsed="0.001100"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:00:37.064776" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:00:37.037652" elapsed="0.027453"/>
</kw>
<msg time="2026-10-15T03:00:37.065490" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:00:37.027595" elapsed="0.037970"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:37.071692" elapsed="0.000043"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:37.077196" elapsed="0.000049"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:37.081230" elapsed="0.000026"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:37.081517" 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-10-15T03:00:37.081707" elapsed="0.000019"/>
</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-10-15T03:00:37.082142" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:37.081983" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:37.081966" elapsed="0.000354"/>
</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-10-15T03:00:37.082502" 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-10-15T03:00:37.082681" 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-10-15T03:00:37.082843" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:00:37.081927" elapsed="0.000964"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:00:37.081783" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:37.083078" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:37.083148" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T03:00:37.083288" 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-10-15T03:00:37.026212" elapsed="0.057101"/>
</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-10-15T03:00:37.084756" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:37.084340" elapsed="0.000573">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:37.085146" 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-10-15T03:00:37.083953" elapsed="0.001218"/>
</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-10-15T03:00:37.085493" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:37.085236" elapsed="0.000311"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.086216" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:37.085757" elapsed="0.000485"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:37.085569" elapsed="0.000705"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:37.085220" elapsed="0.001075"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.086816" 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-10-15T03:00:37.086470" elapsed="0.000372"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:00:37.086887" elapsed="0.000030"/>
</return>
<msg time="2026-10-15T03:00:37.087013" 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-manganese/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-10-15T03:00:37.083627" elapsed="0.003423"/>
</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-10-15T03:00:37.088274" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:37.087927" elapsed="0.000492">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:37.088664" 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-10-15T03:00:37.087616" elapsed="0.001072"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:00:37.088852" elapsed="0.000024"/>
</return>
<status status="PASS" start="2026-10-15T03:00:37.088754" elapsed="0.000152"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:37.088737" elapsed="0.000190"/>
</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-10-15T03:00:37.089087" elapsed="0.000020"/>
</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-10-15T03:00:37.089299" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:00:37.089359" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:00:37.089546" 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-manganese/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-10-15T03:00:37.087298" elapsed="0.002272"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.090871" 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-10-15T03:00:37.090642" elapsed="0.000273"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:37.091329" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:37.091113" elapsed="0.000256"/>
</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-10-15T03:00:37.097761" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:00:37.097867" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:00:37.098079" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:37.091677" elapsed="0.006835">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:37.091430" elapsed="0.007173">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:37.098814" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:37.098636" elapsed="0.000238"/>
</branch>
<status status="FAIL" start="2026-10-15T03:00:37.091413" elapsed="0.007483">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:37.099422" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:37.099573" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:00:37.099537" elapsed="0.000075"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:37.099520" elapsed="0.000112"/>
</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-10-15T03:00:37.099769" elapsed="0.000019"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:00:37.099829" 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-10-15T03:00:37.089880" elapsed="0.010050">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:37.099998" 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-10-15T03:00:37.010677" elapsed="0.089426">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:37.100348" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:37.100188" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:37.100172" elapsed="0.000262"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:37.100534" 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-10-15T03:00:37.009278" elapsed="0.091354">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:00:37.003744" elapsed="0.096947">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:00:37.003496" elapsed="0.097249">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:00:36.999282" elapsed="0.101548">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:36.998798" elapsed="0.102080">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:00:36.998767" elapsed="0.102140">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:37.101184" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:37.100968" elapsed="0.000268"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:37.100953" elapsed="0.000304"/>
</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-10-15T03:00:36.996982" elapsed="0.104347">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:47.110152" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:47.109496" elapsed="0.000800"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:47.109423" elapsed="0.000929"/>
</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-10-15T03:00:47.113665" 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-10-15T03:00:47.112765" elapsed="0.000963"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.114787" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:00:47.114089" elapsed="0.000758"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:00:47.114951" elapsed="0.000075"/>
</return>
<msg time="2026-10-15T03:00:47.115286" 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-10-15T03:00:47.111831" elapsed="0.003510"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.117589" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:47.116900" elapsed="0.000748"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:00:47.117747" elapsed="0.000064"/>
</return>
<msg time="2026-10-15T03:00:47.118031" 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-10-15T03:00:47.116092" elapsed="0.001993"/>
</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-10-15T03:00:47.156088" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:47.155146" elapsed="0.001120"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:00:47.159195" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:00:47.158860" elapsed="0.000438">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:47.159605" 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-10-15T03:00:47.158056" elapsed="0.001691"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.162282" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:47.161368" elapsed="0.002134"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:00:47.165695" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:00:47.166212" 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-10-15T03:00:47.165137" elapsed="0.001217"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.168667" 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-10-15T03:00:47.167964" elapsed="0.000869"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.170895" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:47.170418" elapsed="0.000538"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.171669" 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-10-15T03:00:47.171273" elapsed="0.000431"/>
</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-10-15T03:00:47.172141" elapsed="0.000030"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:47.172410" elapsed="0.000033"/>
</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-10-15T03:00:47.172754" elapsed="0.000028"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:00:47.171942" elapsed="0.000888"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:00:47.171777" elapsed="0.001093"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:00:47.172932" elapsed="0.000050"/>
</return>
<msg time="2026-10-15T03:00:47.173186" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:00:47.169800" elapsed="0.003455"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:47.169090" elapsed="0.004219"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:47.173808" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:47.173390" elapsed="0.000528"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:47.168981" elapsed="0.005014"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.176552" 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-10-15T03:00:47.175505" elapsed="0.001188"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:00:47.176810" elapsed="0.000076"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:00:47.151863" elapsed="0.025292"/>
</kw>
<msg time="2026-10-15T03:00:47.177558" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:00:47.141690" elapsed="0.035950"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:47.183984" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:47.189850" elapsed="0.000039"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:47.195624" elapsed="0.000037"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:47.195995" elapsed="0.000031"/>
</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-10-15T03:00:47.196293" elapsed="0.000028"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:47.196917" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:47.196702" elapsed="0.000452"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:47.196679" elapsed="0.000513"/>
</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-10-15T03:00:47.197422" elapsed="0.000055"/>
</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-10-15T03:00:47.197711" elapsed="0.000027"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:47.197945" elapsed="0.000026"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:00:47.196624" elapsed="0.001390"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:00:47.196397" elapsed="0.001655"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:47.198286" elapsed="0.000027"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:47.198387" elapsed="0.000024"/>
</return>
<msg time="2026-10-15T03:00:47.198603" 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-10-15T03:00:47.140042" elapsed="0.058598"/>
</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-10-15T03:00:47.200490" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:47.200065" elapsed="0.000585">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:47.200867" 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-10-15T03:00:47.199592" elapsed="0.001300"/>
</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-10-15T03:00:47.201207" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:47.200958" elapsed="0.000302"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.201948" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:47.201494" elapsed="0.000479"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:47.201282" elapsed="0.000723"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:47.200941" elapsed="0.001083"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.202560" 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-10-15T03:00:47.202193" elapsed="0.000392"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:00:47.202630" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T03:00:47.202757" 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-manganese/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-10-15T03:00:47.199076" elapsed="0.003704"/>
</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-10-15T03:00:47.204011" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:47.203675" elapsed="0.000499">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:47.204392" 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-10-15T03:00:47.203340" elapsed="0.001076"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:00:47.204641" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:00:47.204541" elapsed="0.000155"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:47.204523" elapsed="0.000195"/>
</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-10-15T03:00:47.204865" elapsed="0.000020"/>
</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-10-15T03:00:47.205084" elapsed="0.000033"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:00:47.205159" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:00:47.205286" 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-manganese/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-10-15T03:00:47.203030" elapsed="0.002279"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.206598" 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-10-15T03:00:47.206349" elapsed="0.000292"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:47.207038" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:47.206824" elapsed="0.000255"/>
</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-10-15T03:00:47.213561" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:00:47.213663" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:00:47.213849" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:47.207376" elapsed="0.006853">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:47.207152" elapsed="0.007159">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:47.214543" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:47.214342" elapsed="0.000261"/>
</branch>
<status status="FAIL" start="2026-10-15T03:00:47.207135" elapsed="0.007491">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:47.215132" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:47.215261" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:00:47.215225" elapsed="0.000075"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:47.215208" 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-10-15T03:00:47.215475" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:00:47.215538" 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-10-15T03:00:47.205651" elapsed="0.009990">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:47.215707" 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-10-15T03:00:47.123252" elapsed="0.092544">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:47.216038" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:47.215879" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:47.215864" elapsed="0.000274"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:47.216215" 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-10-15T03:00:47.121734" elapsed="0.094577">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:00:47.115751" elapsed="0.100620">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:00:47.115487" elapsed="0.100939">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:00:47.110989" elapsed="0.105558">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:47.110499" elapsed="0.106098">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:00:47.110435" elapsed="0.106189">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:47.216879" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:47.216685" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:47.216670" elapsed="0.000281"/>
</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-10-15T03:00:47.108574" elapsed="0.108448">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:57.225101" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:57.224493" elapsed="0.000767"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:57.224425" elapsed="0.000888"/>
</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-10-15T03:00:57.228424" 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-10-15T03:00:57.227602" elapsed="0.000909"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.229478" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:00:57.228849" elapsed="0.000684"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:00:57.229626" elapsed="0.000069"/>
</return>
<msg time="2026-10-15T03:00:57.229916" 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-10-15T03:00:57.226725" elapsed="0.003239"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.232008" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:57.231406" elapsed="0.000655"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:00:57.232151" elapsed="0.000078"/>
</return>
<msg time="2026-10-15T03:00:57.232434" 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-10-15T03:00:57.230692" elapsed="0.001818"/>
</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-10-15T03:00:57.267994" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:57.267084" elapsed="0.001064"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:00:57.270996" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:00:57.270683" elapsed="0.000415">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:57.271409" 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-10-15T03:00:57.269864" elapsed="0.001723"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.274131" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:57.273202" elapsed="0.001168"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:00:57.276401" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:00:57.276902" 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-10-15T03:00:57.275941" elapsed="0.001103"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.279371" 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-10-15T03:00:57.278776" elapsed="0.000782"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.281688" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:57.281286" elapsed="0.000463"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.282397" 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-10-15T03:00:57.282004" elapsed="0.000429"/>
</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-10-15T03:00:57.282936" elapsed="0.000029"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:57.283254" elapsed="0.000045"/>
</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-10-15T03:00:57.283561" elapsed="0.000030"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:00:57.282749" elapsed="0.000890"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:00:57.282581" elapsed="0.001099"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:00:57.283742" elapsed="0.000045"/>
</return>
<msg time="2026-10-15T03:00:57.284036" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:00:57.280664" elapsed="0.003446"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:57.279810" elapsed="0.004370"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:57.284693" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:57.284266" elapsed="0.000534"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:57.279704" elapsed="0.005172"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.287425" 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-10-15T03:00:57.286370" elapsed="0.001247"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:00:57.287735" elapsed="0.000074"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:00:57.263900" elapsed="0.024159"/>
</kw>
<msg time="2026-10-15T03:00:57.288492" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:00:57.254259" elapsed="0.034327"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:57.294948" elapsed="0.000048"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:57.300869" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:57.306603" elapsed="0.000037"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:57.306956" elapsed="0.000030"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:57.307232" elapsed="0.000027"/>
</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-10-15T03:00:57.307856" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:57.307651" elapsed="0.000418"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:57.307628" elapsed="0.000477"/>
</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-10-15T03:00:57.308341" 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-10-15T03:00:57.308633" elapsed="0.000028"/>
</kw>
<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-10-15T03:00:57.308862" elapsed="0.000025"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:00:57.307575" elapsed="0.001353"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:00:57.307332" elapsed="0.001630"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:00:57.309185" elapsed="0.000027"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:57.309284" elapsed="0.000023"/>
</return>
<msg time="2026-10-15T03:00:57.309501" 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-10-15T03:00:57.252790" elapsed="0.056756"/>
</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-10-15T03:00:57.311682" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:57.311037" elapsed="0.000870">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:57.312237" 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-10-15T03:00:57.310504" elapsed="0.001769"/>
</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-10-15T03:00:57.312741" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:57.312365" elapsed="0.000452"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.313813" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:00:57.313108" elapsed="0.000742"/>
</kw>
<status status="PASS" start="2026-10-15T03:00:57.312849" elapsed="0.001049"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:57.312342" elapsed="0.001585"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.314716" 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-10-15T03:00:57.314149" elapsed="0.000605"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:00:57.314819" elapsed="0.000040"/>
</return>
<msg time="2026-10-15T03:00:57.314999" 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-manganese/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-10-15T03:00:57.309987" elapsed="0.005046"/>
</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-10-15T03:00:57.316891" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:00:57.316325" elapsed="0.000774">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:00:57.317433" 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-10-15T03:00:57.315867" elapsed="0.001639"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:00:57.317724" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:00:57.317616" elapsed="0.000164"/>
</branch>
<status status="PASS" start="2026-10-15T03:00:57.317591" elapsed="0.000211"/>
</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-10-15T03:00:57.317951" 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-10-15T03:00:57.318186" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:00:57.318249" elapsed="0.000014"/>
</return>
<msg time="2026-10-15T03:00:57.318374" 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-manganese/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-10-15T03:00:57.315405" elapsed="0.002993"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.319720" 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-10-15T03:00:57.319479" elapsed="0.000284"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:00:57.320185" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:00:57.319952" elapsed="0.000276"/>
</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-10-15T03:00:57.328427" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:00:57.328631" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:00:57.328919" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:57.320596" elapsed="0.008888">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:57.320290" elapsed="0.009319">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:57.329910" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:57.329657" elapsed="0.000344"/>
</branch>
<status status="FAIL" start="2026-10-15T03:00:57.320273" elapsed="0.009760">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:57.330838" elapsed="0.000038"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:57.331029" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:00:57.330977" elapsed="0.000111"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:57.330953" elapsed="0.000164"/>
</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-10-15T03:00:57.331341" elapsed="0.000030"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:00:57.331435" elapsed="0.000047"/>
</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-10-15T03:00:57.318740" elapsed="0.012875">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:57.331714" 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-10-15T03:00:57.237122" elapsed="0.094723">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:57.332220" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:57.331967" elapsed="0.000350"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:57.331944" elapsed="0.000405"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:00:57.332499" elapsed="0.000024"/>
</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-10-15T03:00:57.235780" elapsed="0.096863">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:00:57.230346" elapsed="0.102386">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:00:57.230068" elapsed="0.102744">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:00:57.225900" elapsed="0.107038">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:00:57.225421" elapsed="0.107589">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:00:57.225390" elapsed="0.107661">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:00:57.333479" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:00:57.333140" elapsed="0.000456"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:00:57.333118" elapsed="0.000512"/>
</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-10-15T03:00:57.223641" elapsed="0.110102">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:07.337710" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:07.337399" elapsed="0.000382"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:07.337376" elapsed="0.000431"/>
</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-10-15T03:01:07.339260" 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-10-15T03:01:07.338850" elapsed="0.000438"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.339742" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:01:07.339460" elapsed="0.000307"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:01:07.339812" elapsed="0.000034"/>
</return>
<msg time="2026-10-15T03:01:07.339952" 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-10-15T03:01:07.338430" elapsed="0.001546"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.340936" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:07.340664" elapsed="0.000297"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:01:07.341004" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T03:01:07.341127" 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-10-15T03:01:07.340311" elapsed="0.000840"/>
</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-10-15T03:01:07.357961" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:07.357376" elapsed="0.000682"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:01:07.359780" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:01:07.359570" elapsed="0.000281">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:07.360045" 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-10-15T03:01:07.359051" elapsed="0.001090"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.361795" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:07.361164" elapsed="0.000790"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:01:07.363246" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:01:07.363532" 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-10-15T03:01:07.362939" elapsed="0.000690"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.365038" 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-10-15T03:01:07.364657" elapsed="0.000493"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.366615" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:07.366355" elapsed="0.000303"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.367087" 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-10-15T03:01:07.366834" elapsed="0.000278"/>
</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-10-15T03:01:07.367409" elapsed="0.000020"/>
</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-10-15T03:01:07.367620" elapsed="0.000022"/>
</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-10-15T03:01:07.367800" elapsed="0.000019"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:01:07.367282" elapsed="0.000569"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:01:07.367158" elapsed="0.000721"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:01:07.367918" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T03:01:07.368073" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:01:07.365929" elapsed="0.002191"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:07.365329" elapsed="0.002828"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:07.368682" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:07.368213" elapsed="0.000544"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:07.365259" elapsed="0.003550"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.370483" 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-10-15T03:01:07.369788" elapsed="0.000791"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:01:07.370658" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:01:07.355285" elapsed="0.015596"/>
</kw>
<msg time="2026-10-15T03:01:07.371142" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:01:07.350862" elapsed="0.020330"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:07.375402" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:07.379443" elapsed="0.000048"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:07.383310" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:07.383550" 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-10-15T03:01:07.383734" 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-10-15T03:01:07.384119" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:07.383977" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:07.383964" 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-10-15T03:01:07.384482" 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-10-15T03:01:07.384669" elapsed="0.000018"/>
</kw>
<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-10-15T03:01:07.384831" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:01:07.383935" elapsed="0.000945"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:01:07.383802" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:07.385051" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:07.385118" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:01:07.385225" 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-10-15T03:01:07.350247" elapsed="0.035017"/>
</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-10-15T03:01:07.386565" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:07.386203" elapsed="0.000508">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:07.386926" 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-10-15T03:01:07.385878" elapsed="0.001073"/>
</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-10-15T03:01:07.387247" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:07.387016" elapsed="0.000284"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.387980" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:07.387534" elapsed="0.000471"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:07.387322" elapsed="0.000716"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:07.386999" elapsed="0.001058"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.388609" 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-10-15T03:01:07.388213" elapsed="0.000422"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:01:07.388686" elapsed="0.000027"/>
</return>
<msg time="2026-10-15T03:01:07.388811" 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-manganese/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-10-15T03:01:07.385577" elapsed="0.003258"/>
</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-10-15T03:01:07.390062" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:07.389734" elapsed="0.000472">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:07.390438" 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-10-15T03:01:07.389399" elapsed="0.001081"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:01:07.390663" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:01:07.390557" elapsed="0.000162"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:07.390535" elapsed="0.000207"/>
</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-10-15T03:01:07.390891" elapsed="0.000020"/>
</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-10-15T03:01:07.391098" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:01:07.391158" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:01:07.391540" 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-manganese/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-10-15T03:01:07.389085" elapsed="0.002643"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.394703" 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-10-15T03:01:07.394345" elapsed="0.000416"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:07.395184" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:07.394955" elapsed="0.000273"/>
</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-10-15T03:01:07.401257" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:01:07.401359" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:01:07.401581" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:07.395630" elapsed="0.006346">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:07.395324" elapsed="0.006736">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:07.402262" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:07.402094" elapsed="0.000231"/>
</branch>
<status status="FAIL" start="2026-10-15T03:01:07.395298" elapsed="0.007049">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:07.402931" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:07.403064" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:01:07.403026" elapsed="0.000082"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:07.403010" elapsed="0.000126"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:07.403295" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:01:07.403358" 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-10-15T03:01:07.393060" elapsed="0.010426">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:07.403570" 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-10-15T03:01:07.343360" elapsed="0.060305">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:07.403922" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:07.403758" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:07.403742" elapsed="0.000270"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:07.404099" 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-10-15T03:01:07.342696" elapsed="0.061502">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:01:07.340144" elapsed="0.064132">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:01:07.340027" elapsed="0.064308">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:01:07.338074" elapsed="0.066356">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:07.337858" elapsed="0.066660">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:01:07.337843" elapsed="0.066707">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:07.404818" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:07.404614" elapsed="0.000256"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:07.404599" elapsed="0.000292"/>
</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-10-15T03:01:07.336954" elapsed="0.068013">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:17.411044" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:17.410636" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:17.410606" elapsed="0.000569"/>
</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-10-15T03:01:17.413485" 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-10-15T03:01:17.412747" elapsed="0.000792"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.414428" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:01:17.413843" elapsed="0.000662"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:01:17.414593" elapsed="0.000066"/>
</return>
<msg time="2026-10-15T03:01:17.414876" 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-10-15T03:01:17.412153" elapsed="0.002773"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.417422" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:17.416985" elapsed="0.000493"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:01:17.417539" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T03:01:17.417712" 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-10-15T03:01:17.416516" elapsed="0.001228"/>
</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-10-15T03:01:17.443023" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:17.442164" elapsed="0.001005"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:01:17.445659" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:01:17.445326" elapsed="0.000429">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:17.446031" 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-10-15T03:01:17.444605" elapsed="0.001561"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.448649" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:17.447730" elapsed="0.001157"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:01:17.451736" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:01:17.452118" 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-10-15T03:01:17.451274" elapsed="0.000980"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.454367" 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-10-15T03:01:17.453802" elapsed="0.000896"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.456516" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:17.456136" elapsed="0.000440"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.457226" 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-10-15T03:01:17.456821" elapsed="0.000441"/>
</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-10-15T03:01:17.457757" elapsed="0.000030"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:17.458042" elapsed="0.000032"/>
</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-10-15T03:01:17.458314" elapsed="0.000029"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:01:17.457571" elapsed="0.000817"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:01:17.457349" elapsed="0.001088"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:01:17.458696" elapsed="0.000045"/>
</return>
<msg time="2026-10-15T03:01:17.458924" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:01:17.455597" elapsed="0.003391"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:17.454936" elapsed="0.004102"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:17.459530" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:17.459117" elapsed="0.000515"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:17.454835" elapsed="0.004870"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.462120" 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-10-15T03:01:17.461105" elapsed="0.001154"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:01:17.462396" elapsed="0.000127"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:01:17.438979" elapsed="0.023787"/>
</kw>
<msg time="2026-10-15T03:01:17.463121" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:01:17.432502" elapsed="0.030670"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:17.467592" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:17.471802" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:17.475641" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:17.475858" 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-10-15T03:01:17.476041" 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-10-15T03:01:17.476435" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:17.476280" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:17.476266" elapsed="0.000355"/>
</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-10-15T03:01:17.476778" elapsed="0.000019"/>
</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-10-15T03:01:17.476954" elapsed="0.000018"/>
</kw>
<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-10-15T03:01:17.477114" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:01:17.476238" elapsed="0.000924"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:01:17.476109" elapsed="0.001076"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:17.477345" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:17.477413" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:01:17.477548" 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-10-15T03:01:17.431467" elapsed="0.046104"/>
</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-10-15T03:01:17.478861" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:17.478526" elapsed="0.000480">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:17.479224" 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-10-15T03:01:17.478169" elapsed="0.001079"/>
</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-10-15T03:01:17.479565" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:17.479329" elapsed="0.000288"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.480271" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:17.479831" elapsed="0.000478"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:17.479640" elapsed="0.000703"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:17.479312" elapsed="0.001050"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.480873" 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-10-15T03:01:17.480534" elapsed="0.000364"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:01:17.480943" elapsed="0.000027"/>
</return>
<msg time="2026-10-15T03:01:17.481067" 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-manganese/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-10-15T03:01:17.477869" elapsed="0.003220"/>
</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-10-15T03:01:17.482324" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:17.481983" elapsed="0.000509">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:17.482708" 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-10-15T03:01:17.481669" elapsed="0.001063"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:01:17.482895" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:01:17.482797" elapsed="0.000153"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:17.482780" elapsed="0.000192"/>
</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-10-15T03:01:17.483118" elapsed="0.000020"/>
</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-10-15T03:01:17.483336" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:01:17.483397" elapsed="0.000014"/>
</return>
<msg time="2026-10-15T03:01:17.483536" 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-manganese/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-10-15T03:01:17.481347" elapsed="0.002213"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.484807" 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-10-15T03:01:17.484581" elapsed="0.000268"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:17.485251" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:17.485035" elapsed="0.000257"/>
</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-10-15T03:01:17.493124" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:01:17.493402" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:01:17.493909" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:17.485616" elapsed="0.009111">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:17.485365" elapsed="0.009529">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:17.495324" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:17.494961" elapsed="0.000559"/>
</branch>
<status status="FAIL" start="2026-10-15T03:01:17.485348" elapsed="0.010227">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:17.496798" elapsed="0.000061"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:17.497104" elapsed="0.000047"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:01:17.497017" elapsed="0.000213"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:17.496979" elapsed="0.000303"/>
</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-10-15T03:01:17.497690" elapsed="0.000048"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:01:17.497844" elapsed="0.000034"/>
</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-10-15T03:01:17.483864" elapsed="0.014216">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:17.498236" elapsed="0.000036"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-10-15T03:01:17.420736" elapsed="0.077775">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:17.499092" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:17.498714" elapsed="0.000530"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:17.498677" elapsed="0.000646"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:17.499515" elapsed="0.000038"/>
</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-10-15T03:01:17.419859" elapsed="0.079885">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:01:17.415254" elapsed="0.084629">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:01:17.415024" elapsed="0.084981">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:01:17.411634" elapsed="0.088572">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:17.411250" elapsed="0.089094">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:01:17.411229" elapsed="0.089184">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:17.501063" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:17.500600" elapsed="0.000587"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:17.500562" elapsed="0.000679"/>
</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-10-15T03:01:17.410033" elapsed="0.091406">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:27.514676" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:27.513618" elapsed="0.001274"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:27.513547" elapsed="0.001433"/>
</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-10-15T03:01:27.520115" 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-10-15T03:01:27.518697" elapsed="0.001515"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.521838" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:01:27.520820" elapsed="0.001110"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:01:27.522125" elapsed="0.000106"/>
</return>
<msg time="2026-10-15T03:01:27.522682" 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-10-15T03:01:27.517284" elapsed="0.005485"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.525299" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:27.524579" elapsed="0.000807"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:01:27.525530" elapsed="0.000071"/>
</return>
<msg time="2026-10-15T03:01:27.525838" 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-10-15T03:01:27.523744" elapsed="0.002149"/>
</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-10-15T03:01:27.559394" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:27.558569" elapsed="0.001057"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:01:27.562274" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:01:27.561978" elapsed="0.000411">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:27.562678" 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-10-15T03:01:27.561022" elapsed="0.001787"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.565163" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:27.564280" elapsed="0.001114"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:01:27.567260" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:01:27.567748" 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-10-15T03:01:27.566848" elapsed="0.001034"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.569959" 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-10-15T03:01:27.569266" elapsed="0.000852"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.572010" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:27.571667" elapsed="0.000402"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.572726" 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-10-15T03:01:27.572315" elapsed="0.000445"/>
</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-10-15T03:01:27.573161" elapsed="0.000028"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:27.573428" elapsed="0.000073"/>
</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-10-15T03:01:27.573663" elapsed="0.000019"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:01:27.572984" elapsed="0.000732"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:01:27.572825" elapsed="0.000919"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:01:27.573785" elapsed="0.000030"/>
</return>
<msg time="2026-10-15T03:01:27.573944" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:01:27.570978" elapsed="0.003012"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:27.570350" elapsed="0.003675"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:27.574348" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:27.574081" elapsed="0.000356"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:27.570253" elapsed="0.004259"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.576171" 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-10-15T03:01:27.575494" elapsed="0.000771"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:01:27.576344" elapsed="0.000068"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:01:27.555611" elapsed="0.020995"/>
</kw>
<msg time="2026-10-15T03:01:27.576863" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:01:27.549313" elapsed="0.027600"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:27.581078" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:27.584962" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:27.589016" elapsed="0.000026"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:27.589250" 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-10-15T03:01:27.589466" 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-10-15T03:01:27.589864" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:27.589722" elapsed="0.000290"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:27.589708" elapsed="0.000329"/>
</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-10-15T03:01:27.590192" 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-10-15T03:01:27.590386" 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-10-15T03:01:27.590570" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:01:27.589675" elapsed="0.000944"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:01:27.589539" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:27.590791" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:27.590859" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T03:01:27.590979" 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-10-15T03:01:27.548460" elapsed="0.042544"/>
</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-10-15T03:01:27.592350" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:27.591994" elapsed="0.000550">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:27.592764" 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-10-15T03:01:27.591650" elapsed="0.001139"/>
</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-10-15T03:01:27.593102" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:27.592855" elapsed="0.000302"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.593867" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:27.593389" elapsed="0.000504"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:27.593180" elapsed="0.000746"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:27.592838" elapsed="0.001108"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.594481" 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-10-15T03:01:27.594103" elapsed="0.000405"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:01:27.594555" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T03:01:27.594684" 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-manganese/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-10-15T03:01:27.591309" elapsed="0.003398"/>
</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-10-15T03:01:27.595972" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:27.595627" elapsed="0.000494">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:27.596342" 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-10-15T03:01:27.595262" elapsed="0.001117"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:01:27.596569" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:01:27.596467" elapsed="0.000157"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:27.596431" elapsed="0.000215"/>
</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-10-15T03:01:27.596793" elapsed="0.000019"/>
</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-10-15T03:01:27.597018" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:01:27.597078" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:01:27.597204" 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-manganese/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-10-15T03:01:27.594958" elapsed="0.002269"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.598557" 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-10-15T03:01:27.598293" elapsed="0.000309"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:27.599005" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:27.598788" elapsed="0.000258"/>
</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-10-15T03:01:27.604615" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:01:27.604721" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:01:27.604917" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:27.599330" elapsed="0.005956">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:27.599106" elapsed="0.006278">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:27.605661" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:27.605421" elapsed="0.000301"/>
</branch>
<status status="FAIL" start="2026-10-15T03:01:27.599090" elapsed="0.006654">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:27.606252" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:27.606400" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:01:27.606345" elapsed="0.000096"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:27.606329" elapsed="0.000158"/>
</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-10-15T03:01:27.606625" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:01:27.606688" 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-10-15T03:01:27.597601" elapsed="0.009189">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:27.606857" elapsed="0.000014"/>
</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-10-15T03:01:27.531315" elapsed="0.075630">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:27.607188" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:27.607030" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:27.607014" elapsed="0.000260"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:27.607355" 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-10-15T03:01:27.529775" elapsed="0.077714">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:01:27.523338" elapsed="0.084213">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:01:27.522941" elapsed="0.084664">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:01:27.515993" elapsed="0.091698">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:27.515156" elapsed="0.092583">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:01:27.515107" elapsed="0.092661">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:27.608025" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:27.607829" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:27.607814" elapsed="0.000285"/>
</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-10-15T03:01:27.512210" elapsed="0.095961">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:37.616522" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:37.615854" elapsed="0.000812"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:37.615809" elapsed="0.000910"/>
</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-10-15T03:01:37.619969" 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-10-15T03:01:37.619086" elapsed="0.000944"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.621042" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:01:37.620377" elapsed="0.000721"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:01:37.621195" elapsed="0.000073"/>
</return>
<msg time="2026-10-15T03:01:37.621567" 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-10-15T03:01:37.618117" elapsed="0.003505"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.623757" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:37.623094" elapsed="0.000720"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:01:37.623913" elapsed="0.000062"/>
</return>
<msg time="2026-10-15T03:01:37.624186" 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-10-15T03:01:37.622322" elapsed="0.001914"/>
</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-10-15T03:01:37.658464" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:37.657617" elapsed="0.000994"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:01:37.661100" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:01:37.660798" elapsed="0.000398">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:37.661501" 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-10-15T03:01:37.660021" elapsed="0.001611"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.664015" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:37.663013" elapsed="0.001231"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:01:37.666364" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:01:37.666762" 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-10-15T03:01:37.665932" elapsed="0.000969"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.669137" 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-10-15T03:01:37.668334" elapsed="0.000960"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.671189" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:37.670852" elapsed="0.000396"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.671920" 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-10-15T03:01:37.671554" elapsed="0.000400"/>
</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-10-15T03:01:37.672362" elapsed="0.000027"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:37.672850" elapsed="0.000033"/>
</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-10-15T03:01:37.673106" elapsed="0.000027"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:01:37.672185" elapsed="0.000994"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:01:37.672023" elapsed="0.001195"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:01:37.673278" elapsed="0.000048"/>
</return>
<msg time="2026-10-15T03:01:37.673541" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:01:37.670211" elapsed="0.003396"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:37.669579" elapsed="0.004080"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:37.674113" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:37.673739" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:37.669474" elapsed="0.004816"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.676807" 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-10-15T03:01:37.675706" elapsed="0.001235"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:01:37.677053" elapsed="0.000074"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:01:37.654643" elapsed="0.022724"/>
</kw>
<msg time="2026-10-15T03:01:37.677772" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:01:37.646298" elapsed="0.031543"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:37.682077" elapsed="0.000032"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:37.686057" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:37.690032" elapsed="0.000026"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:37.690285" 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-10-15T03:01:37.690498" 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-10-15T03:01:37.690906" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:37.690761" elapsed="0.000299"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:37.690745" 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-10-15T03:01:37.691241" elapsed="0.000019"/>
</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-10-15T03:01:37.691418" elapsed="0.000061"/>
</kw>
<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-10-15T03:01:37.691630" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:01:37.690710" elapsed="0.000969"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:01:37.690571" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:37.691856" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:37.691925" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:01:37.692054" 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-10-15T03:01:37.644603" elapsed="0.047476"/>
</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-10-15T03:01:37.693515" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:37.693104" elapsed="0.000571">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:37.693897" 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-10-15T03:01:37.692738" elapsed="0.001184"/>
</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-10-15T03:01:37.694219" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:37.693989" elapsed="0.000282"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.694969" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:37.694515" elapsed="0.000479"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:37.694293" elapsed="0.000733"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:37.693972" elapsed="0.001073"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.695583" 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-10-15T03:01:37.695200" elapsed="0.000410"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:01:37.695656" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T03:01:37.695784" 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-manganese/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-10-15T03:01:37.692383" elapsed="0.003425"/>
</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-10-15T03:01:37.697056" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:37.696715" elapsed="0.000486">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:37.697420" 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-10-15T03:01:37.696352" elapsed="0.001305"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:01:37.697849" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-10-15T03:01:37.697733" elapsed="0.000172"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:37.697715" elapsed="0.000212"/>
</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-10-15T03:01:37.698076" elapsed="0.000019"/>
</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-10-15T03:01:37.698322" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:01:37.698383" elapsed="0.000014"/>
</return>
<msg time="2026-10-15T03:01:37.698536" 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-manganese/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-10-15T03:01:37.696054" elapsed="0.002506"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.699854" 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-10-15T03:01:37.699622" elapsed="0.000277"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:37.700306" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:37.700085" elapsed="0.000263"/>
</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-10-15T03:01:37.710492" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:01:37.710647" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:01:37.710918" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:37.700735" elapsed="0.010607">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:37.700409" elapsed="0.011074">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:37.711782" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:37.711532" elapsed="0.000317"/>
</branch>
<status status="FAIL" start="2026-10-15T03:01:37.700392" elapsed="0.011481">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:37.712497" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:37.712644" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:01:37.712604" elapsed="0.000083"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:37.712584" elapsed="0.000123"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:37.712846" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:01:37.712909" 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-10-15T03:01:37.698884" elapsed="0.014138">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:37.713092" 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-10-15T03:01:37.629078" elapsed="0.084109">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:37.713471" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:37.713276" elapsed="0.000268"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:37.713258" elapsed="0.000309"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:37.713656" 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-10-15T03:01:37.627669" elapsed="0.086082">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:01:37.621988" elapsed="0.091828">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:01:37.621732" elapsed="0.092140">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:01:37.617304" elapsed="0.096659">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:37.616831" elapsed="0.097184">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:01:37.616799" elapsed="0.097248">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:37.714317" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:37.714110" elapsed="0.000259"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:37.714094" elapsed="0.000297"/>
</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-10-15T03:01:37.614956" elapsed="0.099535">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:47.722760" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:47.722083" elapsed="0.000818"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:47.722040" elapsed="0.000916"/>
</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-10-15T03:01:47.726153" 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-10-15T03:01:47.725241" elapsed="0.000972"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.727212" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:01:47.726605" elapsed="0.000662"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:01:47.727365" elapsed="0.000116"/>
</return>
<msg time="2026-10-15T03:01:47.727718" 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-10-15T03:01:47.724345" elapsed="0.003425"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.729977" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:47.729285" elapsed="0.000752"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:01:47.730135" elapsed="0.000065"/>
</return>
<msg time="2026-10-15T03:01:47.730424" 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-10-15T03:01:47.728523" elapsed="0.002006"/>
</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-10-15T03:01:47.766341" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:47.765503" elapsed="0.001089"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:01:47.769177" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:01:47.768841" elapsed="0.000430">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:47.769615" 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-10-15T03:01:47.768118" elapsed="0.001629"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.772083" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:47.771223" elapsed="0.001083"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:01:47.774161" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:01:47.774641" 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-10-15T03:01:47.773753" elapsed="0.001021"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.776845" 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-10-15T03:01:47.776160" elapsed="0.000840"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.778941" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:47.778595" elapsed="0.000407"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.779642" 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-10-15T03:01:47.779249" elapsed="0.000426"/>
</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-10-15T03:01:47.780082" elapsed="0.000028"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:47.780336" elapsed="0.000031"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:47.780679" elapsed="0.000029"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:01:47.779906" elapsed="0.000850"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:01:47.779745" elapsed="0.001052"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:01:47.780857" elapsed="0.000044"/>
</return>
<msg time="2026-10-15T03:01:47.781080" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:01:47.777899" elapsed="0.003247"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:47.777236" elapsed="0.003961"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:47.781696" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:47.781277" elapsed="0.000524"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:47.777136" elapsed="0.004741"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.784245" 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-10-15T03:01:47.783257" elapsed="0.001125"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:01:47.784542" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:01:47.762414" elapsed="0.022444"/>
</kw>
<msg time="2026-10-15T03:01:47.785226" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:01:47.753766" elapsed="0.031537"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:47.789910" elapsed="0.000027"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:47.793898" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:47.797916" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:47.798188" 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-10-15T03:01:47.798378" 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-10-15T03:01:47.798824" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:47.798677" elapsed="0.000298"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:47.798661" 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-10-15T03:01:47.799158" elapsed="0.000019"/>
</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-10-15T03:01:47.799335" 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-10-15T03:01:47.799530" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:01:47.798623" elapsed="0.000957"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:01:47.798477" elapsed="0.001128"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:47.799755" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:47.799826" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T03:01:47.799967" 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-10-15T03:01:47.752256" elapsed="0.047737"/>
</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-10-15T03:01:47.801544" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:47.801123" elapsed="0.000580">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:47.801925" 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-10-15T03:01:47.800742" elapsed="0.001208"/>
</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-10-15T03:01:47.802259" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:47.802017" elapsed="0.000295"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.803148" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:47.802701" elapsed="0.000472"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:47.802510" elapsed="0.000695"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:47.802000" elapsed="0.001226"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.803764" 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-10-15T03:01:47.803383" elapsed="0.000406"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:01:47.803835" elapsed="0.000030"/>
</return>
<msg time="2026-10-15T03:01:47.803964" 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-manganese/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-10-15T03:01:47.800382" elapsed="0.003605"/>
</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-10-15T03:01:47.805252" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:47.804910" elapsed="0.000488">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:47.805652" 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-10-15T03:01:47.804588" elapsed="0.001088"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:01:47.805844" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-10-15T03:01:47.805743" elapsed="0.000158"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:47.805725" elapsed="0.000198"/>
</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-10-15T03:01:47.806073" elapsed="0.000020"/>
</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-10-15T03:01:47.806292" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:01:47.806353" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:01:47.806556" 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-manganese/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-10-15T03:01:47.804243" elapsed="0.002337"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.807862" 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-10-15T03:01:47.807629" elapsed="0.000276"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:47.808317" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:47.808093" elapsed="0.000266"/>
</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-10-15T03:01:47.814760" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:01:47.814861" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:01:47.815043" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:47.808682" elapsed="0.006720">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:47.808420" elapsed="0.007113">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:47.815714" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:47.815564" elapsed="0.000210"/>
</branch>
<status status="FAIL" start="2026-10-15T03:01:47.808403" elapsed="0.007393">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:47.816275" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:47.816399" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:01:47.816365" elapsed="0.000104"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:47.816348" elapsed="0.000143"/>
</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-10-15T03:01:47.816628" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:01:47.816690" 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-10-15T03:01:47.806890" elapsed="0.009900">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:47.816856" elapsed="0.000014"/>
</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-10-15T03:01:47.735843" elapsed="0.081101">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:47.817186" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:47.817028" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:47.817012" elapsed="0.000262"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:47.817342" 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-10-15T03:01:47.734148" elapsed="0.083325">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:01:47.728126" elapsed="0.089412">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:01:47.727876" elapsed="0.089716">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:01:47.723589" elapsed="0.094098">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:47.723067" elapsed="0.094670">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:01:47.723036" elapsed="0.094730">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:47.818027" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:47.817827" elapsed="0.000253"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:47.817812" elapsed="0.000290"/>
</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-10-15T03:01:47.721201" elapsed="0.096972">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:57.827000" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:57.826329" elapsed="0.000811"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:57.826284" elapsed="0.000909"/>
</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-10-15T03:01:57.830549" 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-10-15T03:01:57.829656" elapsed="0.000955"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.831660" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:01:57.830977" elapsed="0.000739"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:01:57.831813" elapsed="0.000088"/>
</return>
<msg time="2026-10-15T03:01:57.832135" 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-10-15T03:01:57.828701" elapsed="0.003501"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.834580" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:57.833880" elapsed="0.000759"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:01:57.834736" elapsed="0.000075"/>
</return>
<msg time="2026-10-15T03:01:57.835029" 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-10-15T03:01:57.833006" elapsed="0.002075"/>
</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-10-15T03:01:57.872722" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:57.871863" elapsed="0.001001"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:01:57.875428" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:01:57.875090" elapsed="0.000674">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:57.876038" 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-10-15T03:01:57.874293" elapsed="0.001879"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.878534" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:57.877654" elapsed="0.001084"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:01:57.880713" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:01:57.881099" 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-10-15T03:01:57.880092" elapsed="0.001139"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.883292" 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-10-15T03:01:57.882737" elapsed="0.000761"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.885241" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:57.884902" elapsed="0.000399"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.886115" 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-10-15T03:01:57.885735" elapsed="0.000414"/>
</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-10-15T03:01:57.886595" elapsed="0.000030"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:57.886864" elapsed="0.000032"/>
</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-10-15T03:01:57.887118" elapsed="0.000027"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:01:57.886366" elapsed="0.000825"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:01:57.886213" elapsed="0.001017"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:01:57.887288" elapsed="0.000058"/>
</return>
<msg time="2026-10-15T03:01:57.887569" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:01:57.884296" elapsed="0.003339"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:57.883726" elapsed="0.003960"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:57.888183" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:57.887764" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:57.883631" elapsed="0.004729"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.890814" 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-10-15T03:01:57.889799" elapsed="0.001150"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:01:57.891059" elapsed="0.000073"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:01:57.867835" elapsed="0.023596"/>
</kw>
<msg time="2026-10-15T03:01:57.891856" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:01:57.857550" elapsed="0.034381"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:57.897245" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:57.901209" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:57.905208" elapsed="0.000024"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:57.905480" 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-10-15T03:01:57.905675" elapsed="0.000019"/>
</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-10-15T03:01:57.906060" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:57.905918" elapsed="0.000299"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:57.905904" 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-10-15T03:01:57.906416" elapsed="0.000019"/>
</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-10-15T03:01:57.906617" 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-10-15T03:01:57.906778" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:01:57.905874" elapsed="0.000951"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:01:57.905744" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:01:57.907005" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:57.907071" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:01:57.907178" 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-10-15T03:01:57.856123" elapsed="0.051079"/>
</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-10-15T03:01:57.908537" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:57.908151" elapsed="0.000540">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:57.908906" 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-10-15T03:01:57.907828" elapsed="0.001102"/>
</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-10-15T03:01:57.909211" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:57.908994" elapsed="0.000267"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.909957" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:01:57.909518" elapsed="0.000464"/>
</kw>
<status status="PASS" start="2026-10-15T03:01:57.909283" elapsed="0.000731"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:57.908978" elapsed="0.001055"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.910584" 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-10-15T03:01:57.910197" elapsed="0.000412"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:01:57.910654" elapsed="0.000027"/>
</return>
<msg time="2026-10-15T03:01:57.910778" 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-manganese/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-10-15T03:01:57.907526" elapsed="0.003274"/>
</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-10-15T03:01:57.912020" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:01:57.911693" elapsed="0.000470">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:01:57.912395" 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-10-15T03:01:57.911336" elapsed="0.001086"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:01:57.912610" elapsed="0.000024"/>
</return>
<status status="PASS" start="2026-10-15T03:01:57.912511" elapsed="0.000153"/>
</branch>
<status status="PASS" start="2026-10-15T03:01:57.912493" elapsed="0.000192"/>
</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-10-15T03:01:57.912831" elapsed="0.000019"/>
</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-10-15T03:01:57.913036" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:01:57.913094" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:01:57.913219" 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-manganese/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-10-15T03:01:57.911044" elapsed="0.002198"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.914582" 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-10-15T03:01:57.914296" elapsed="0.000328"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:01:57.915024" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:01:57.914809" elapsed="0.000257"/>
</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-10-15T03:01:57.920157" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:01:57.920253" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:01:57.920471" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:57.915345" elapsed="0.005505">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:57.915124" elapsed="0.005804">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:57.921108" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:57.920957" elapsed="0.000217"/>
</branch>
<status status="FAIL" start="2026-10-15T03:01:57.915108" elapsed="0.006088">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:57.921762" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:57.921884" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:01:57.921851" elapsed="0.000070"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:57.921836" elapsed="0.000106"/>
</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-10-15T03:01:57.922076" elapsed="0.000019"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:01:57.922137" 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-10-15T03:01:57.913610" elapsed="0.008628">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:57.922303" elapsed="0.000014"/>
</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-10-15T03:01:57.839954" elapsed="0.082451">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:57.922702" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:57.922532" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:57.922516" elapsed="0.000272"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:01:57.922852" 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-10-15T03:01:57.838562" elapsed="0.084385">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:01:57.832629" elapsed="0.090377">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:01:57.832311" elapsed="0.090754">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:01:57.827870" elapsed="0.095283">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:01:57.827306" elapsed="0.095896">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:01:57.827274" elapsed="0.095957">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:01:57.923552" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:01:57.923293" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:01:57.923277" 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-10-15T03:01:57.825485" elapsed="0.098218">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:07.929862" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:07.929057" elapsed="0.000952"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:07.929008" elapsed="0.001055"/>
</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-10-15T03:02:07.933396" 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-10-15T03:02:07.932505" elapsed="0.000979"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:02:07.934494" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:02:07.933834" elapsed="0.000718"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:02:07.934647" elapsed="0.000072"/>
</return>
<msg time="2026-10-15T03:02:07.934948" 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-10-15T03:02:07.931558" elapsed="0.003441"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:07.937124" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:07.936524" elapsed="0.000656"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:02:07.937272" elapsed="0.000081"/>
</return>
<msg time="2026-10-15T03:02:07.937598" 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-10-15T03:02:07.935763" elapsed="0.001886"/>
</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-10-15T03:02:07.971510" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:07.970639" elapsed="0.001014"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:02:07.974217" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:02:07.973886" elapsed="0.000462">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:07.974648" 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-10-15T03:02:07.973129" elapsed="0.001653"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:07.977107" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:07.976220" elapsed="0.001137"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:02:07.979189" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:02:07.979598" 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-10-15T03:02:07.978769" elapsed="0.000969"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:07.982046" 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-10-15T03:02:07.981509" elapsed="0.000694"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:07.984033" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:07.983702" elapsed="0.000391"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:02:07.984940" 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-10-15T03:02:07.984365" elapsed="0.000609"/>
</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-10-15T03:02:07.985396" elapsed="0.000029"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:07.985672" elapsed="0.000031"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:07.985922" elapsed="0.000026"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:02:07.985198" elapsed="0.000794"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:02:07.985041" elapsed="0.000990"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:02:07.986087" elapsed="0.000043"/>
</return>
<msg time="2026-10-15T03:02:07.986327" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:02:07.983097" elapsed="0.003299"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:07.982480" elapsed="0.003966"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:07.986922" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:07.986548" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:07.982356" elapsed="0.004740"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:02:07.989672" 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-10-15T03:02:07.988684" elapsed="0.001122"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:02:07.989917" elapsed="0.000073"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:02:07.967571" elapsed="0.022658"/>
</kw>
<msg time="2026-10-15T03:02:07.990648" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:02:07.959377" elapsed="0.031346"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:07.996691" elapsed="0.000037"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:08.002082" elapsed="0.000035"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:08.006861" elapsed="0.000047"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:08.007174" 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-10-15T03:02:08.007376" 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-10-15T03:02:08.007809" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:08.007663" elapsed="0.000293"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:08.007648" elapsed="0.000333"/>
</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-10-15T03:02:08.008136" elapsed="0.000019"/>
</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-10-15T03:02:08.008322" 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-10-15T03:02:08.008495" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:02:08.007607" elapsed="0.000936"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:02:08.007462" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:08.008717" elapsed="0.000018"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:08.008783" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:02:08.008910" 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-10-15T03:02:07.957971" elapsed="0.050964"/>
</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-10-15T03:02:08.010306" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:08.009930" elapsed="0.000569">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:08.010718" 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-10-15T03:02:08.009583" elapsed="0.001160"/>
</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-10-15T03:02:08.011032" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:08.010807" elapsed="0.000276"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:08.011780" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:08.011298" elapsed="0.000506"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:08.011104" elapsed="0.000732"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:08.010790" elapsed="0.001066"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:08.012370" 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-10-15T03:02:08.012013" elapsed="0.000382"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:02:08.012440" elapsed="0.000044"/>
</return>
<msg time="2026-10-15T03:02:08.012582" 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-manganese/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-10-15T03:02:08.009233" elapsed="0.003372"/>
</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-10-15T03:02:08.013845" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:08.013506" elapsed="0.000485">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:08.014250" 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-10-15T03:02:08.013159" elapsed="0.001115"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:02:08.014486" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-10-15T03:02:08.014352" elapsed="0.000191"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:08.014335" elapsed="0.000233"/>
</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-10-15T03:02:08.014721" elapsed="0.000020"/>
</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-10-15T03:02:08.014943" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:02:08.015003" elapsed="0.000014"/>
</return>
<msg time="2026-10-15T03:02:08.015127" 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-manganese/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-10-15T03:02:08.012858" elapsed="0.002292"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:08.016483" 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-10-15T03:02:08.016228" elapsed="0.000299"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:08.016928" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:08.016713" elapsed="0.000255"/>
</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-10-15T03:02:08.023036" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:02:08.023139" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:02:08.023340" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:08.017251" elapsed="0.006489">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:08.017028" elapsed="0.006792">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:08.024017" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:08.023852" elapsed="0.000225"/>
</branch>
<status status="FAIL" start="2026-10-15T03:02:08.017012" elapsed="0.007087">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:08.024638" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:08.024769" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:02:08.024733" elapsed="0.000074"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:08.024718" elapsed="0.000108"/>
</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-10-15T03:02:08.024962" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:02:08.025024" 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-10-15T03:02:08.015526" elapsed="0.009599">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:08.025190" elapsed="0.000014"/>
</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-10-15T03:02:07.942494" elapsed="0.082783">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:08.025551" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:08.025376" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:08.025360" elapsed="0.000282"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:08.025716" 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-10-15T03:02:07.941046" elapsed="0.084765">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:02:07.935401" elapsed="0.090470">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:02:07.935106" elapsed="0.090819">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:02:07.930716" elapsed="0.095294">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:07.930172" elapsed="0.095887">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:02:07.930142" elapsed="0.095946">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:08.026366" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:08.026148" elapsed="0.000270"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:08.026134" elapsed="0.000305"/>
</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-10-15T03:02:07.928010" elapsed="0.098535">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:18.035154" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:18.034557" elapsed="0.000754"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:18.034513" elapsed="0.000852"/>
</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-10-15T03:02:18.038494" 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-10-15T03:02:18.037645" elapsed="0.000911"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.039545" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:02:18.038897" elapsed="0.000703"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:02:18.039695" elapsed="0.000066"/>
</return>
<msg time="2026-10-15T03:02:18.039985" 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-10-15T03:02:18.036763" elapsed="0.003274"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.042134" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:18.041536" elapsed="0.000654"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:02:18.042303" elapsed="0.000061"/>
</return>
<msg time="2026-10-15T03:02:18.042608" 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-10-15T03:02:18.040768" elapsed="0.001892"/>
</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-10-15T03:02:18.076974" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:18.076164" elapsed="0.000950"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:02:18.079517" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:02:18.079196" elapsed="0.000414">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:18.079878" 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-10-15T03:02:18.078545" elapsed="0.001465"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.082284" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:18.081410" elapsed="0.001296"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:02:18.084518" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:02:18.084892" 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-10-15T03:02:18.084069" elapsed="0.000954"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.087237" 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-10-15T03:02:18.086697" elapsed="0.000713"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.089118" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:18.088786" elapsed="0.000390"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.089819" 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-10-15T03:02:18.089431" elapsed="0.000422"/>
</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-10-15T03:02:18.090243" elapsed="0.000045"/>
</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-10-15T03:02:18.090702" elapsed="0.000031"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:18.090953" elapsed="0.000026"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:02:18.090069" elapsed="0.000956"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:02:18.089917" elapsed="0.001146"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:02:18.091118" elapsed="0.000040"/>
</return>
<msg time="2026-10-15T03:02:18.091352" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:02:18.088219" elapsed="0.003199"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:18.087655" elapsed="0.003834"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:18.091937" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:18.091568" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:18.087560" elapsed="0.004551"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.094514" 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-10-15T03:02:18.093542" elapsed="0.001107"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:02:18.094760" elapsed="0.000071"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:02:18.073287" elapsed="0.021783"/>
</kw>
<msg time="2026-10-15T03:02:18.095465" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:02:18.064283" elapsed="0.031255"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:18.100418" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:18.104415" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:18.108311" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:18.108552" 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-10-15T03:02:18.108735" elapsed="0.000019"/>
</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-10-15T03:02:18.109170" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:18.108996" elapsed="0.000345"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:18.108976" elapsed="0.000390"/>
</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-10-15T03:02:18.109550" 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-10-15T03:02:18.109728" elapsed="0.000018"/>
</kw>
<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-10-15T03:02:18.109893" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:02:18.108936" elapsed="0.001004"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:02:18.108803" elapsed="0.001161"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:18.110110" elapsed="0.000018"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:18.110176" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:02:18.110310" 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-10-15T03:02:18.062913" elapsed="0.047422"/>
</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-10-15T03:02:18.111724" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:18.111346" elapsed="0.000532">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:18.112098" 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-10-15T03:02:18.110997" elapsed="0.001125"/>
</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-10-15T03:02:18.112473" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:18.112186" elapsed="0.000345"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.113191" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:18.112746" elapsed="0.000469"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:18.112554" elapsed="0.000693"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:18.112170" elapsed="0.001111"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.113806" 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-10-15T03:02:18.113443" elapsed="0.000387"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:02:18.113875" elapsed="0.000027"/>
</return>
<msg time="2026-10-15T03:02:18.113997" 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-manganese/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-10-15T03:02:18.110650" elapsed="0.003370"/>
</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-10-15T03:02:18.115246" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:18.114910" elapsed="0.000494">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:18.115639" 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-10-15T03:02:18.114590" elapsed="0.001072"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:02:18.115823" elapsed="0.000024"/>
</return>
<status status="PASS" start="2026-10-15T03:02:18.115727" elapsed="0.000150"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:18.115711" elapsed="0.000188"/>
</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-10-15T03:02:18.116046" elapsed="0.000019"/>
</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-10-15T03:02:18.116250" elapsed="0.000034"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:02:18.116324" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:02:18.116466" 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-manganese/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-10-15T03:02:18.114272" elapsed="0.002218"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.117825" 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-10-15T03:02:18.117602" elapsed="0.000265"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:18.118281" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:18.118052" elapsed="0.000271"/>
</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-10-15T03:02:18.125128" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:02:18.125229" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:02:18.125435" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:18.118673" elapsed="0.007181">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:18.118383" elapsed="0.007549">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:18.126126" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:18.125963" elapsed="0.000222"/>
</branch>
<status status="FAIL" start="2026-10-15T03:02:18.118367" elapsed="0.007840">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:18.126753" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:18.126880" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:02:18.126844" elapsed="0.000080"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:18.126828" 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-10-15T03:02:18.127080" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:02:18.127142" elapsed="0.000013"/>
</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-10-15T03:02:18.116845" elapsed="0.010395">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:18.127323" elapsed="0.000014"/>
</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-10-15T03:02:18.047340" elapsed="0.080069">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:18.127661" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:18.127507" elapsed="0.000218"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:18.127491" elapsed="0.000255"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:18.127818" 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-10-15T03:02:18.045932" elapsed="0.081980">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:02:18.040405" elapsed="0.087565">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:02:18.040140" elapsed="0.087881">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:02:18.035968" elapsed="0.092135">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:18.035503" elapsed="0.092647">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:02:18.035443" elapsed="0.092734">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:18.128440" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:18.128234" elapsed="0.000273"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:18.128220" elapsed="0.000308"/>
</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-10-15T03:02:18.033644" elapsed="0.094954">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:28.136806" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:28.136167" elapsed="0.000772"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:28.136125" elapsed="0.000867"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.140037" 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-10-15T03:02:28.139221" elapsed="0.000874"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.141072" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:02:28.140481" elapsed="0.000645"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:02:28.141241" elapsed="0.000067"/>
</return>
<msg time="2026-10-15T03:02:28.141562" 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-10-15T03:02:28.138353" elapsed="0.003261"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.143881" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:28.143177" elapsed="0.000760"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:02:28.144036" elapsed="0.000062"/>
</return>
<msg time="2026-10-15T03:02:28.144341" 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-10-15T03:02:28.142301" elapsed="0.002091"/>
</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-10-15T03:02:28.180947" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:28.180062" elapsed="0.001025"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:02:28.183539" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:02:28.183220" elapsed="0.000415">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:28.183905" 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-10-15T03:02:28.182525" elapsed="0.001511"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.186598" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:28.185722" elapsed="0.001090"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:02:28.188664" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:02:28.189034" 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-10-15T03:02:28.188161" elapsed="0.001007"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.191395" 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-10-15T03:02:28.190842" elapsed="0.000730"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.193436" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:28.193076" elapsed="0.000647"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.194356" 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-10-15T03:02:28.193972" elapsed="0.000418"/>
</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-10-15T03:02:28.194820" elapsed="0.000027"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:28.195074" elapsed="0.000030"/>
</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-10-15T03:02:28.195345" elapsed="0.000027"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:02:28.194641" elapsed="0.000778"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:02:28.194478" elapsed="0.000999"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:02:28.195538" elapsed="0.000050"/>
</return>
<msg time="2026-10-15T03:02:28.195764" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:02:28.192503" elapsed="0.003324"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:28.191813" elapsed="0.004066"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:28.196346" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:28.195956" elapsed="0.000524"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:28.191710" elapsed="0.004850"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.199150" 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-10-15T03:02:28.198139" elapsed="0.001162"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:02:28.199413" elapsed="0.000096"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:02:28.177138" elapsed="0.022612"/>
</kw>
<msg time="2026-10-15T03:02:28.200111" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:02:28.166872" elapsed="0.033317"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:28.204716" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:28.208773" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:28.212712" elapsed="0.000030"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:28.212993" 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-10-15T03:02:28.213186" elapsed="0.000032"/>
</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-10-15T03:02:28.213655" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:28.213505" elapsed="0.000300"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:28.213487" elapsed="0.000343"/>
</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-10-15T03:02:28.213989" elapsed="0.000019"/>
</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-10-15T03:02:28.214167" elapsed="0.000018"/>
</kw>
<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-10-15T03:02:28.214343" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:02:28.213431" elapsed="0.000961"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:02:28.213275" elapsed="0.001143"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:28.214585" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:28.214656" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T03:02:28.214799" 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-10-15T03:02:28.165241" elapsed="0.049583"/>
</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-10-15T03:02:28.216363" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:28.215893" elapsed="0.000677">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:28.216825" 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-10-15T03:02:28.215513" elapsed="0.001341"/>
</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-10-15T03:02:28.217173" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:28.216931" elapsed="0.000314"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.217958" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:28.217504" elapsed="0.000479"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:28.217268" elapsed="0.000747"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:28.216912" elapsed="0.001123"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.218588" 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-10-15T03:02:28.218191" elapsed="0.000422"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:02:28.218658" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T03:02:28.218785" 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-manganese/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-10-15T03:02:28.215141" elapsed="0.003666"/>
</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-10-15T03:02:28.220031" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:28.219696" elapsed="0.000481">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:28.220430" 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-10-15T03:02:28.219364" elapsed="0.001113"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:02:28.220651" elapsed="0.000024"/>
</return>
<status status="PASS" start="2026-10-15T03:02:28.220552" elapsed="0.000154"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:28.220534" elapsed="0.000194"/>
</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-10-15T03:02:28.220878" elapsed="0.000020"/>
</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-10-15T03:02:28.221171" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:02:28.221258" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:02:28.221389" 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-manganese/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-10-15T03:02:28.219053" elapsed="0.002360"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.222784" 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-10-15T03:02:28.222553" elapsed="0.000273"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:28.223266" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:28.223037" elapsed="0.000269"/>
</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-10-15T03:02:28.229237" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:02:28.229340" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:02:28.229555" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:28.223607" elapsed="0.006305">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:28.223366" elapsed="0.006626">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:28.230189" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:28.230023" elapsed="0.000241"/>
</branch>
<status status="FAIL" start="2026-10-15T03:02:28.223350" elapsed="0.006936">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:28.230857" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:28.230984" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:02:28.230950" elapsed="0.000073"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:28.230934" elapsed="0.000108"/>
</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-10-15T03:02:28.231180" elapsed="0.000036"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:02:28.231260" 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-10-15T03:02:28.221782" elapsed="0.009579">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:28.231426" 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-10-15T03:02:28.149225" elapsed="0.082306">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:28.231775" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:28.231616" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:28.231600" elapsed="0.000274"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:28.231952" 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-10-15T03:02:28.147815" elapsed="0.084236">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:02:28.141961" elapsed="0.090152">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:02:28.141721" elapsed="0.090449">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:02:28.137606" elapsed="0.094669">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:28.137100" elapsed="0.095224">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:02:28.137069" elapsed="0.095284">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:28.232628" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:28.232415" elapsed="0.000265"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:28.232400" elapsed="0.000302"/>
</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-10-15T03:02:28.135316" elapsed="0.097457">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:38.241668" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:38.240976" elapsed="0.000839"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:38.240930" elapsed="0.000943"/>
</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-10-15T03:02:38.245226" 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-10-15T03:02:38.244305" elapsed="0.000986"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.246361" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:02:38.245694" elapsed="0.000725"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:02:38.246555" elapsed="0.000077"/>
</return>
<msg time="2026-10-15T03:02:38.246876" 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-10-15T03:02:38.243360" elapsed="0.003570"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.249238" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:38.248581" elapsed="0.000717"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:02:38.249397" elapsed="0.000097"/>
</return>
<msg time="2026-10-15T03:02:38.249723" 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-10-15T03:02:38.247768" elapsed="0.002009"/>
</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-10-15T03:02:38.287473" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:38.286612" elapsed="0.001005"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:02:38.290186" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:02:38.289872" elapsed="0.000413">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:38.290646" 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-10-15T03:02:38.289194" elapsed="0.001584"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.293088" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:38.292178" elapsed="0.001140"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:02:38.295202" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:02:38.295576" 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-10-15T03:02:38.294780" elapsed="0.000928"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.297760" 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-10-15T03:02:38.297212" elapsed="0.000701"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.299769" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:38.299421" elapsed="0.000405"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.300436" 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-10-15T03:02:38.300064" elapsed="0.000508"/>
</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-10-15T03:02:38.300980" elapsed="0.000027"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:38.301250" elapsed="0.000032"/>
</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-10-15T03:02:38.301523" elapsed="0.000027"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:02:38.300802" elapsed="0.000794"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:02:38.300642" elapsed="0.000994"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:02:38.301694" elapsed="0.000042"/>
</return>
<msg time="2026-10-15T03:02:38.301912" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:02:38.298865" elapsed="0.003112"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:38.298162" elapsed="0.003865"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:38.302538" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:38.302105" elapsed="0.000538"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:38.298047" elapsed="0.004670"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.305060" 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-10-15T03:02:38.304087" elapsed="0.001130"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:02:38.305328" elapsed="0.000070"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:02:38.283669" elapsed="0.022007"/>
</kw>
<msg time="2026-10-15T03:02:38.306037" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:02:38.273689" elapsed="0.032417"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:38.310621" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:38.314521" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:38.318386" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:38.318619" elapsed="0.000020"/>
</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-10-15T03:02:38.318795" elapsed="0.000019"/>
</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-10-15T03:02:38.319188" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:38.319033" elapsed="0.000301"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:38.319019" 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-10-15T03:02:38.319529" 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-10-15T03:02:38.319707" elapsed="0.000018"/>
</kw>
<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-10-15T03:02:38.319866" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:02:38.318990" elapsed="0.000923"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:02:38.318861" elapsed="0.001075"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:38.320084" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:38.320163" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:02:38.320272" 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-10-15T03:02:38.272186" elapsed="0.048109"/>
</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-10-15T03:02:38.321580" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:38.321230" elapsed="0.000495">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:38.321942" 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-10-15T03:02:38.320899" elapsed="0.001068"/>
</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-10-15T03:02:38.322265" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:38.322031" elapsed="0.000286"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.322986" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:38.322548" elapsed="0.000463"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:38.322339" elapsed="0.000703"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:38.322014" elapsed="0.001048"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.323599" 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-10-15T03:02:38.323232" elapsed="0.000392"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:02:38.323668" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T03:02:38.323791" 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-manganese/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-10-15T03:02:38.320604" elapsed="0.003210"/>
</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-10-15T03:02:38.325025" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:38.324701" elapsed="0.000480">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:38.325398" 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-10-15T03:02:38.324367" elapsed="0.001055"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:02:38.325637" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:02:38.325538" elapsed="0.000154"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:38.325521" elapsed="0.000194"/>
</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-10-15T03:02:38.325863" elapsed="0.000019"/>
</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-10-15T03:02:38.326070" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:02:38.326130" elapsed="0.000033"/>
</return>
<msg time="2026-10-15T03:02:38.326275" 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-manganese/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-10-15T03:02:38.324056" elapsed="0.002242"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.327582" 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-10-15T03:02:38.327337" elapsed="0.000287"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:38.328024" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:38.327810" elapsed="0.000254"/>
</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-10-15T03:02:38.335892" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:02:38.336015" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:02:38.336247" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:38.328382" elapsed="0.008302">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:38.328123" elapsed="0.008653">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:38.337016" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:38.336813" elapsed="0.000266"/>
</branch>
<status status="FAIL" start="2026-10-15T03:02:38.328107" elapsed="0.008995">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:38.337690" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:38.337828" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:02:38.337790" elapsed="0.000078"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:38.337771" 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-10-15T03:02:38.338026" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:02:38.338088" 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-10-15T03:02:38.326635" elapsed="0.011578">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:38.338283" 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-10-15T03:02:38.254981" elapsed="0.083393">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:38.338648" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:38.338485" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:38.338466" elapsed="0.000269"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:38.338817" 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-10-15T03:02:38.253424" elapsed="0.085488">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:02:38.247336" elapsed="0.091637">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:02:38.247044" elapsed="0.091983">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:02:38.242546" elapsed="0.096568">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:38.241990" elapsed="0.097195">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:02:38.241958" elapsed="0.097257">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:38.339540" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:38.339276" elapsed="0.000318"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:38.339261" 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-10-15T03:02:38.240028" elapsed="0.099660">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:48.347991" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:48.347315" elapsed="0.000835"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:48.347273" elapsed="0.000931"/>
</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-10-15T03:02:48.351351" 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-10-15T03:02:48.350487" elapsed="0.000923"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.352509" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:02:48.351808" elapsed="0.000758"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:02:48.352661" elapsed="0.000069"/>
</return>
<msg time="2026-10-15T03:02:48.352957" 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-10-15T03:02:48.349616" elapsed="0.003393"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.355121" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:48.354504" elapsed="0.000674"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:02:48.355272" elapsed="0.000060"/>
</return>
<msg time="2026-10-15T03:02:48.355573" 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-10-15T03:02:48.353749" elapsed="0.001876"/>
</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-10-15T03:02:48.394115" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:48.392372" elapsed="0.001971"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:02:48.398162" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:02:48.397862" elapsed="0.000394">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:48.398602" 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-10-15T03:02:48.396659" elapsed="0.002079"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.401023" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:48.400164" elapsed="0.001083"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:02:48.403084" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:02:48.403486" 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-10-15T03:02:48.402668" elapsed="0.000957"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.405857" 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-10-15T03:02:48.405294" 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-10-15T03:02:48.407840" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:48.407508" elapsed="0.000390"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.408546" 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-10-15T03:02:48.408154" elapsed="0.000426"/>
</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-10-15T03:02:48.408975" elapsed="0.000028"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:48.409244" elapsed="0.000030"/>
</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-10-15T03:02:48.409610" elapsed="0.000029"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:02:48.408799" elapsed="0.000888"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:02:48.408644" elapsed="0.001081"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:02:48.409779" elapsed="0.000041"/>
</return>
<msg time="2026-10-15T03:02:48.409995" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:02:48.406915" elapsed="0.003145"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:48.406269" elapsed="0.004004"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:48.410758" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:48.410353" elapsed="0.000509"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:48.406170" elapsed="0.004766"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.413316" 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-10-15T03:02:48.412351" elapsed="0.001130"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:02:48.413596" elapsed="0.000071"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:02:48.387580" elapsed="0.026323"/>
</kw>
<msg time="2026-10-15T03:02:48.414285" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:02:48.377640" elapsed="0.036715"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:48.420183" elapsed="0.000035"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:48.425225" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:48.429065" elapsed="0.000037"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:48.429318" 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-10-15T03:02:48.429518" 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-10-15T03:02:48.429904" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:48.429762" elapsed="0.000292"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:48.429748" elapsed="0.000330"/>
</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-10-15T03:02:48.430247" elapsed="0.000019"/>
</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-10-15T03:02:48.430425" 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-10-15T03:02:48.430612" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:02:48.429718" elapsed="0.000943"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:02:48.429587" elapsed="0.001097"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:48.430832" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:48.431036" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:02:48.431163" 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-10-15T03:02:48.376229" elapsed="0.054958"/>
</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-10-15T03:02:48.432512" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:48.432139" elapsed="0.000522">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:48.432876" 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-10-15T03:02:48.431800" elapsed="0.001101"/>
</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-10-15T03:02:48.433201" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:48.432965" elapsed="0.000288"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.433927" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:48.433489" elapsed="0.000463"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:48.433274" elapsed="0.000710"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:48.432949" elapsed="0.001054"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.434532" 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-10-15T03:02:48.434174" elapsed="0.000383"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:02:48.434602" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T03:02:48.434726" 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-manganese/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-10-15T03:02:48.431499" elapsed="0.003249"/>
</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-10-15T03:02:48.435959" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:48.435632" elapsed="0.000486">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:48.436332" 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-10-15T03:02:48.435295" elapsed="0.001061"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:02:48.436540" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:02:48.436421" elapsed="0.000174"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:48.436405" elapsed="0.000212"/>
</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-10-15T03:02:48.436765" elapsed="0.000019"/>
</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-10-15T03:02:48.436979" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:02:48.437038" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:02:48.437176" 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-manganese/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-10-15T03:02:48.434988" elapsed="0.002211"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.438522" 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-10-15T03:02:48.438248" elapsed="0.000318"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:48.438977" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:48.438761" elapsed="0.000255"/>
</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-10-15T03:02:48.445439" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:02:48.445558" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:02:48.445736" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:48.439317" elapsed="0.006766">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:48.439075" elapsed="0.007098">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:48.446351" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:48.446203" elapsed="0.000206"/>
</branch>
<status status="FAIL" start="2026-10-15T03:02:48.439059" elapsed="0.007372">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:48.446959" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:48.447081" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:02:48.447047" elapsed="0.000087"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:48.447032" elapsed="0.000123"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:48.447290" elapsed="0.000019"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:02:48.447352" 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-10-15T03:02:48.437549" elapsed="0.009927">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:48.447545" 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-10-15T03:02:48.360616" elapsed="0.087018">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:48.447873" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:48.447717" elapsed="0.000221"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:48.447702" elapsed="0.000257"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:48.448021" 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-10-15T03:02:48.359186" elapsed="0.088944">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:02:48.353391" elapsed="0.094799">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:02:48.353141" elapsed="0.095101">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:02:48.348814" elapsed="0.099511">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:48.348316" elapsed="0.100057">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:02:48.348284" elapsed="0.100117">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:48.448682" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:48.448482" elapsed="0.000252"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:48.448465" elapsed="0.000290"/>
</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-10-15T03:02:48.346482" elapsed="0.102344">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:58.457211" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:58.456573" elapsed="0.000776"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:58.456528" elapsed="0.000877"/>
</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-10-15T03:02:58.460651" 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-10-15T03:02:58.459741" elapsed="0.000969"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.461760" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:02:58.461085" elapsed="0.000730"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:02:58.461909" elapsed="0.000078"/>
</return>
<msg time="2026-10-15T03:02:58.462268" 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-10-15T03:02:58.458808" elapsed="0.003515"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.464540" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:58.463820" elapsed="0.000775"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:02:58.464687" elapsed="0.000059"/>
</return>
<msg time="2026-10-15T03:02:58.464950" 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-10-15T03:02:58.463028" elapsed="0.001972"/>
</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-10-15T03:02:58.499691" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:58.498754" elapsed="0.001088"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:02:58.502443" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:02:58.502155" elapsed="0.000468">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:58.502891" 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-10-15T03:02:58.501440" elapsed="0.001587"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.505384" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:58.504541" elapsed="0.001076"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:02:58.507545" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:02:58.507902" 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-10-15T03:02:58.507114" elapsed="0.000923"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.510125" 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-10-15T03:02:58.509568" elapsed="0.000715"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.512434" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:58.512087" elapsed="0.000538"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.513253" 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-10-15T03:02:58.512873" elapsed="0.000413"/>
</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-10-15T03:02:58.513716" elapsed="0.000027"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.513968" elapsed="0.000031"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.514234" elapsed="0.000026"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:02:58.513537" elapsed="0.000768"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:02:58.513353" elapsed="0.000991"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:02:58.514405" elapsed="0.000090"/>
</return>
<msg time="2026-10-15T03:02:58.514687" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:02:58.511498" elapsed="0.003254"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:58.510638" elapsed="0.004164"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.515277" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:58.514881" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:58.510418" elapsed="0.005062"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.517866" 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-10-15T03:02:58.516880" elapsed="0.001122"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:02:58.518134" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:02:58.495706" elapsed="0.022737"/>
</kw>
<msg time="2026-10-15T03:02:58.518840" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:02:58.486491" elapsed="0.032425"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.524822" elapsed="0.000035"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.530224" elapsed="0.000035"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.535610" elapsed="0.000034"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.535920" elapsed="0.000028"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.536186" elapsed="0.000027"/>
</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-10-15T03:02:58.536742" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:58.536547" elapsed="0.000405"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:58.536527" elapsed="0.000461"/>
</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-10-15T03:02:58.537274" elapsed="0.000032"/>
</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-10-15T03:02:58.537499" 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-10-15T03:02:58.537667" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:02:58.536483" elapsed="0.001232"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:02:58.536279" elapsed="0.001459"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.537886" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:58.537953" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:02:58.538081" 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-10-15T03:02:58.485122" elapsed="0.052983"/>
</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-10-15T03:02:58.539429" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:58.539071" elapsed="0.000533">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:58.539820" 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-10-15T03:02:58.538733" elapsed="0.001111"/>
</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-10-15T03:02:58.540144" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:58.539908" elapsed="0.000288"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.540907" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:02:58.540409" elapsed="0.000524"/>
</kw>
<status status="PASS" start="2026-10-15T03:02:58.540218" elapsed="0.000747"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:58.539891" elapsed="0.001093"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.541518" 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-10-15T03:02:58.541156" elapsed="0.000387"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:02:58.541588" elapsed="0.000027"/>
</return>
<msg time="2026-10-15T03:02:58.541709" 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-manganese/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-10-15T03:02:58.538397" elapsed="0.003334"/>
</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-10-15T03:02:58.542992" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:02:58.542664" elapsed="0.000487">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:02:58.543365" 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-10-15T03:02:58.542333" elapsed="0.001056"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:02:58.543611" elapsed="0.000024"/>
</return>
<status status="PASS" start="2026-10-15T03:02:58.543511" elapsed="0.000155"/>
</branch>
<status status="PASS" start="2026-10-15T03:02:58.543437" elapsed="0.000251"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.543833" elapsed="0.000019"/>
</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-10-15T03:02:58.544052" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:02:58.544113" elapsed="0.000014"/>
</return>
<msg time="2026-10-15T03:02:58.544236" 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-manganese/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-10-15T03:02:58.541970" elapsed="0.002289"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.545539" 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-10-15T03:02:58.545297" elapsed="0.000283"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:02:58.545975" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:02:58.545763" elapsed="0.000252"/>
</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-10-15T03:02:58.554731" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:02:58.554849" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:02:58.555129" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:58.546308" elapsed="0.009312">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:58.546088" elapsed="0.009630">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:58.555956" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:58.555755" elapsed="0.000266"/>
</branch>
<status status="FAIL" start="2026-10-15T03:02:58.546072" elapsed="0.009991">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:58.556681" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:58.556824" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:02:58.556786" elapsed="0.000081"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:58.556767" elapsed="0.000122"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T03:02:58.557078" elapsed="0.000024"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:02:58.557151" 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-10-15T03:02:58.544597" elapsed="0.012665">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:58.557329" 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-10-15T03:02:58.469718" elapsed="0.087700">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:58.557726" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:58.557556" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:58.557535" elapsed="0.000280"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:02:58.557893" 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-10-15T03:02:58.468324" elapsed="0.089695">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:02:58.462705" elapsed="0.095398">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:02:58.462429" elapsed="0.095729">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:02:58.458015" elapsed="0.100229">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:02:58.457549" elapsed="0.100744">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:02:58.457516" elapsed="0.100805">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:02:58.558636" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:02:58.558383" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:02:58.558367" 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-10-15T03:02:58.455664" elapsed="0.103127">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:08.568387" elapsed="0.000128"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:08.567367" elapsed="0.001270"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:08.567303" elapsed="0.001397"/>
</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-10-15T03:03:08.572370" 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-10-15T03:03:08.571442" elapsed="0.000991"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.573506" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:03:08.572814" elapsed="0.000752"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:03:08.573665" elapsed="0.000073"/>
</return>
<msg time="2026-10-15T03:03:08.573974" 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-10-15T03:03:08.570359" elapsed="0.003692"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.576418" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:08.575753" elapsed="0.000755"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:03:08.576606" elapsed="0.000064"/>
</return>
<msg time="2026-10-15T03:03:08.576891" 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-10-15T03:03:08.574789" elapsed="0.002154"/>
</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-10-15T03:03:08.612362" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:08.611386" elapsed="0.001157"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:03:08.615407" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:03:08.615085" elapsed="0.000530">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:08.615904" 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-10-15T03:03:08.614274" elapsed="0.002760"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.619700" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:08.618696" elapsed="0.001241"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:03:08.622180" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:03:08.622658" 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-10-15T03:03:08.621659" elapsed="0.001174"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.625122" 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-10-15T03:03:08.624439" elapsed="0.000846"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.627695" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:08.627203" elapsed="0.000558"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.628475" 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-10-15T03:03:08.628064" elapsed="0.000451"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:08.629009" elapsed="0.000038"/>
</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-10-15T03:03:08.629294" elapsed="0.000032"/>
</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-10-15T03:03:08.629614" elapsed="0.000033"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:03:08.628770" elapsed="0.000927"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:03:08.628595" elapsed="0.001143"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:03:08.629818" elapsed="0.000062"/>
</return>
<msg time="2026-10-15T03:03:08.630113" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:03:08.626547" elapsed="0.003636"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:08.625647" elapsed="0.004590"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:08.630765" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:08.630320" elapsed="0.000556"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:08.625427" elapsed="0.005527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.633784" 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-10-15T03:03:08.632545" elapsed="0.001395"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:03:08.634080" elapsed="0.000082"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:03:08.608273" elapsed="0.026145"/>
</kw>
<msg time="2026-10-15T03:03:08.634846" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:03:08.600341" elapsed="0.034589"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:08.641159" elapsed="0.000037"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:08.646939" elapsed="0.000038"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:08.653172" elapsed="0.000045"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:08.653662" elapsed="0.000054"/>
</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-10-15T03:03:08.654056" elapsed="0.000036"/>
</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-10-15T03:03:08.654701" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:08.654502" elapsed="0.000402"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:08.654479" elapsed="0.000463"/>
</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-10-15T03:03:08.655187" 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-10-15T03:03:08.655401" 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-10-15T03:03:08.655645" elapsed="0.000025"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:03:08.654408" elapsed="0.001304"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:03:08.654187" elapsed="0.001561"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:08.655952" elapsed="0.000027"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:08.656066" elapsed="0.000023"/>
</return>
<msg time="2026-10-15T03:03:08.656233" 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-10-15T03:03:08.598766" elapsed="0.057495"/>
</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-10-15T03:03:08.658032" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:08.657566" elapsed="0.000638">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:08.658442" 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-10-15T03:03:08.657072" elapsed="0.001417"/>
</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-10-15T03:03:08.658828" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:08.658565" elapsed="0.000319"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.659624" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:08.659122" elapsed="0.000528"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:08.658907" elapsed="0.000778"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:08.658542" elapsed="0.001164"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.660257" 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-10-15T03:03:08.659872" elapsed="0.000412"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:03:08.660332" elapsed="0.000032"/>
</return>
<msg time="2026-10-15T03:03:08.660635" 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-manganese/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-10-15T03:03:08.656642" elapsed="0.004021"/>
</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-10-15T03:03:08.662062" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:08.661694" elapsed="0.000522">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:08.662445" 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-10-15T03:03:08.661291" elapsed="0.001210"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:03:08.662684" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-10-15T03:03:08.662579" elapsed="0.000163"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:08.662555" elapsed="0.000210"/>
</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-10-15T03:03:08.662945" elapsed="0.000028"/>
</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-10-15T03:03:08.663217" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:03:08.663281" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:03:08.663411" 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-manganese/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-10-15T03:03:08.660961" elapsed="0.002475"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.664922" 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-10-15T03:03:08.664674" elapsed="0.000292"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:08.665432" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:08.665195" elapsed="0.000334"/>
</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-10-15T03:03:08.671749" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:03:08.671854" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:03:08.672062" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:08.665841" elapsed="0.006650">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:08.665604" elapsed="0.006983">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:08.672787" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:08.672623" elapsed="0.000225"/>
</branch>
<status status="FAIL" start="2026-10-15T03:03:08.665585" elapsed="0.007286">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:08.673388" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:08.673545" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:03:08.673506" elapsed="0.000092"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:08.673489" elapsed="0.000130"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:08.673763" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:03:08.673829" elapsed="0.000018"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-10-15T03:03:08.663829" elapsed="0.010117">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:08.674029" elapsed="0.000018"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-10-15T03:03:08.582217" elapsed="0.091907">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:08.674382" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:08.674212" elapsed="0.000257"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:08.674195" elapsed="0.000300"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:08.674570" 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-10-15T03:03:08.580657" elapsed="0.094014">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:03:08.574422" elapsed="0.100312">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:03:08.574161" elapsed="0.100642">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:03:08.569388" elapsed="0.105536">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:08.568830" elapsed="0.106175">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:03:08.568793" elapsed="0.106254">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:08.675377" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:08.675127" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:08.675107" elapsed="0.000368"/>
</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-10-15T03:03:08.566102" elapsed="0.109451">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:18.684427" elapsed="0.000083"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:18.683792" elapsed="0.000808"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:18.683747" elapsed="0.000907"/>
</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-10-15T03:03:18.688302" 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-10-15T03:03:18.687327" elapsed="0.001042"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.689428" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:03:18.688778" elapsed="0.000737"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:03:18.689617" elapsed="0.000073"/>
</return>
<msg time="2026-10-15T03:03:18.689918" 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-10-15T03:03:18.686250" elapsed="0.003746"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.692204" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:18.691544" elapsed="0.000716"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:03:18.692353" elapsed="0.000061"/>
</return>
<msg time="2026-10-15T03:03:18.692713" 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-10-15T03:03:18.690733" elapsed="0.002038"/>
</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-10-15T03:03:18.728190" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:18.727310" elapsed="0.001025"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:03:18.731070" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:03:18.730743" elapsed="0.000425">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:18.731440" 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-10-15T03:03:18.729933" elapsed="0.001727"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.733956" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:18.733072" elapsed="0.001104"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:03:18.736237" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:03:18.736616" 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-10-15T03:03:18.735802" elapsed="0.000947"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.738910" 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-10-15T03:03:18.738190" elapsed="0.000903"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.740917" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:18.740581" elapsed="0.000414"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.741641" 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-10-15T03:03:18.741244" elapsed="0.000431"/>
</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-10-15T03:03:18.742098" elapsed="0.000028"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:18.742352" elapsed="0.000031"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:18.742858" elapsed="0.000035"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:03:18.741903" elapsed="0.001062"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:03:18.741744" elapsed="0.001266"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:03:18.743072" elapsed="0.000051"/>
</return>
<msg time="2026-10-15T03:03:18.743312" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:03:18.740002" elapsed="0.003379"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:18.739332" elapsed="0.004102"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:18.743992" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:18.743558" elapsed="0.000542"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:18.739233" elapsed="0.004943"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.746788" 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-10-15T03:03:18.745688" elapsed="0.001236"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:03:18.747074" elapsed="0.000076"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:03:18.724217" elapsed="0.023182"/>
</kw>
<msg time="2026-10-15T03:03:18.747860" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:03:18.715691" elapsed="0.032240"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:18.752269" elapsed="0.000032"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:18.756250" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:18.760112" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:18.760372" 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-10-15T03:03:18.760575" 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-10-15T03:03:18.761017" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:18.760854" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:18.760837" elapsed="0.000358"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:18.761407" 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-10-15T03:03:18.761617" 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-10-15T03:03:18.761779" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:03:18.760798" elapsed="0.001030"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:03:18.760652" elapsed="0.001201"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:18.762016" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:18.762087" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T03:03:18.762218" 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-10-15T03:03:18.714067" elapsed="0.048176"/>
</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-10-15T03:03:18.763665" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:18.763262" elapsed="0.000558">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:18.764063" 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-10-15T03:03:18.762885" elapsed="0.001203"/>
</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-10-15T03:03:18.764387" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:18.764154" elapsed="0.000285"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.765135" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:18.764674" elapsed="0.000487"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:18.764478" elapsed="0.000715"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:18.764137" elapsed="0.001076"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.765748" 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-10-15T03:03:18.765368" elapsed="0.000404"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:03:18.765818" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T03:03:18.765962" 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-manganese/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-10-15T03:03:18.762568" elapsed="0.003418"/>
</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-10-15T03:03:18.767218" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:18.766874" elapsed="0.000488">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:18.767600" 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-10-15T03:03:18.766558" elapsed="0.001065"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:03:18.767786" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:03:18.767689" elapsed="0.000152"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:18.767672" elapsed="0.000192"/>
</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-10-15T03:03:18.768039" 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-10-15T03:03:18.768253" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:03:18.768312" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:03:18.768438" 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-manganese/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-10-15T03:03:18.766233" elapsed="0.002244"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.769760" 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-10-15T03:03:18.769524" elapsed="0.000280"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:18.770220" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:18.770001" elapsed="0.000260"/>
</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-10-15T03:03:18.777185" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:03:18.777285" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:03:18.777502" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:18.770604" elapsed="0.007264">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:18.770321" elapsed="0.007641">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:18.778148" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:18.777994" elapsed="0.000213"/>
</branch>
<status status="FAIL" start="2026-10-15T03:03:18.770305" elapsed="0.007924">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:18.778760" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:18.778883" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:03:18.778850" elapsed="0.000071"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:18.778834" 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-10-15T03:03:18.779092" elapsed="0.000019"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:03:18.779170" 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-10-15T03:03:18.768790" elapsed="0.010480">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:18.779336" elapsed="0.000014"/>
</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-10-15T03:03:18.698065" elapsed="0.081371">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:18.779734" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:18.779577" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:18.779561" elapsed="0.000258"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:18.779885" 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-10-15T03:03:18.696423" elapsed="0.083583">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:03:18.690362" elapsed="0.089707">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:03:18.690107" elapsed="0.090013">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:03:18.685255" elapsed="0.094950">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:18.684767" elapsed="0.095486">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:03:18.684736" elapsed="0.095545">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:18.780555" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:18.780342" elapsed="0.000264"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:18.780327" elapsed="0.000301"/>
</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-10-15T03:03:18.682880" elapsed="0.097820">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:28.788987" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:28.788302" elapsed="0.000820"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:28.788258" elapsed="0.000918"/>
</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-10-15T03:03:28.792295" 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-10-15T03:03:28.791442" elapsed="0.000913"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.793348" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:03:28.792728" elapsed="0.000674"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:03:28.793526" elapsed="0.000072"/>
</return>
<msg time="2026-10-15T03:03:28.793822" 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-10-15T03:03:28.790588" elapsed="0.003284"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.796000" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:28.795350" elapsed="0.000704"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:03:28.796145" elapsed="0.000062"/>
</return>
<msg time="2026-10-15T03:03:28.796413" 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-10-15T03:03:28.794608" elapsed="0.001884"/>
</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-10-15T03:03:28.833420" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:28.831984" elapsed="0.001696"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:03:28.837016" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:03:28.836647" elapsed="0.000503">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:28.837525" 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-10-15T03:03:28.835739" elapsed="0.001947"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.840755" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:28.839640" elapsed="0.001423"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:03:28.843575" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:03:28.844092" 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-10-15T03:03:28.843074" elapsed="0.001160"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.846750" 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-10-15T03:03:28.846002" elapsed="0.000995"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.849646" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:28.849168" elapsed="0.000569"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.850806" 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-10-15T03:03:28.850199" elapsed="0.000643"/>
</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-10-15T03:03:28.851193" 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-10-15T03:03:28.851388" elapsed="0.000023"/>
</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-10-15T03:03:28.851589" elapsed="0.000020"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:03:28.851060" elapsed="0.000582"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:03:28.850925" elapsed="0.000747"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:03:28.851718" elapsed="0.000041"/>
</return>
<msg time="2026-10-15T03:03:28.851931" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:03:28.848291" elapsed="0.003692"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:28.847281" elapsed="0.004741"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:28.852354" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:28.852081" elapsed="0.000348"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:28.847160" elapsed="0.005342"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.854368" 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-10-15T03:03:28.853614" elapsed="0.000936"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:03:28.854635" elapsed="0.000057"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:03:28.828022" elapsed="0.026865"/>
</kw>
<msg time="2026-10-15T03:03:28.855177" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:03:28.819687" elapsed="0.035553"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:28.862149" elapsed="0.000140"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:28.866979" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:28.871201" elapsed="0.000028"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:28.871619" elapsed="0.000029"/>
</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-10-15T03:03:28.871856" 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-10-15T03:03:28.872538" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:28.872268" elapsed="0.000470"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:28.872241" elapsed="0.000544"/>
</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-10-15T03:03:28.873023" elapsed="0.000027"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:28.873265" 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-10-15T03:03:28.873467" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:03:28.872171" elapsed="0.001348"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:03:28.871969" elapsed="0.001581"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:28.873708" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:28.873788" elapsed="0.000024"/>
</return>
<msg time="2026-10-15T03:03:28.874029" 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-10-15T03:03:28.817991" elapsed="0.056070"/>
</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-10-15T03:03:28.876434" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:28.875479" elapsed="0.001458">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:28.877316" 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-10-15T03:03:28.874886" elapsed="0.002461"/>
</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-10-15T03:03:28.878021" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:28.877528" elapsed="0.000562"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.879104" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:28.878407" elapsed="0.000724"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:28.878121" elapsed="0.001044"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:28.877475" elapsed="0.001712"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.879843" 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-10-15T03:03:28.879371" elapsed="0.000510"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:03:28.879974" elapsed="0.000054"/>
</return>
<msg time="2026-10-15T03:03:28.880198" 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-manganese/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-10-15T03:03:28.874390" elapsed="0.005840"/>
</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-10-15T03:03:28.882160" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:28.881694" elapsed="0.000647">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:28.882640" 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-10-15T03:03:28.881226" elapsed="0.001447"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:03:28.882916" elapsed="0.000036"/>
</return>
<status status="PASS" start="2026-10-15T03:03:28.882764" elapsed="0.000231"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:28.882741" elapsed="0.000286"/>
</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-10-15T03:03:28.883235" 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-10-15T03:03:28.883640" elapsed="0.000028"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:03:28.883722" elapsed="0.000020"/>
</return>
<msg time="2026-10-15T03:03:28.883889" 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-manganese/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-10-15T03:03:28.880729" elapsed="0.003211"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.885720" 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-10-15T03:03:28.885310" elapsed="0.000469"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:28.886357" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:28.886061" elapsed="0.000351"/>
</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-10-15T03:03:28.893508" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:03:28.893622" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:03:28.893818" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:28.886820" elapsed="0.007451">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:28.886512" elapsed="0.007845">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:28.894558" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:28.894387" elapsed="0.000232"/>
</branch>
<status status="FAIL" start="2026-10-15T03:03:28.886488" elapsed="0.008154">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:28.895167" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:28.895292" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:03:28.895258" elapsed="0.000072"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:28.895243" elapsed="0.000108"/>
</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-10-15T03:03:28.895508" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:03:28.895578" 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-10-15T03:03:28.884375" elapsed="0.011304">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:28.895746" 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-10-15T03:03:28.801343" elapsed="0.094496">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:28.896110" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:28.895944" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:28.895925" elapsed="0.000274"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:28.896271" 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-10-15T03:03:28.799923" elapsed="0.096450">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:03:28.794251" elapsed="0.102189">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:03:28.794004" elapsed="0.102529">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:03:28.789783" elapsed="0.106848">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:28.789287" elapsed="0.107396">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:03:28.789257" elapsed="0.107457">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:28.897005" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:28.896779" elapsed="0.000279"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:28.896763" 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-10-15T03:03:28.787412" elapsed="0.109742">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:38.907169" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:38.906421" elapsed="0.000913"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:38.906366" elapsed="0.001030"/>
</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-10-15T03:03:38.910951" 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-10-15T03:03:38.909950" elapsed="0.001085"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.912196" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:03:38.911505" elapsed="0.000750"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:03:38.912361" elapsed="0.000131"/>
</return>
<msg time="2026-10-15T03:03:38.912745" 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-10-15T03:03:38.908946" elapsed="0.003852"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.915096" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:38.914411" elapsed="0.000742"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:03:38.915251" elapsed="0.000065"/>
</return>
<msg time="2026-10-15T03:03:38.915571" 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-10-15T03:03:38.913630" elapsed="0.001995"/>
</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-10-15T03:03:38.952934" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:38.952066" elapsed="0.001029"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:03:38.955658" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:03:38.955286" elapsed="0.000495">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:38.956078" 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-10-15T03:03:38.954592" elapsed="0.001621"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.958703" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:38.957834" elapsed="0.001172"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:03:38.960835" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:03:38.961252" 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-10-15T03:03:38.960381" elapsed="0.001002"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.963482" 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-10-15T03:03:38.962936" elapsed="0.000703"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.965444" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:38.965117" elapsed="0.000409"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.966139" 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-10-15T03:03:38.965768" elapsed="0.000404"/>
</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-10-15T03:03:38.966585" elapsed="0.000028"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:38.966837" elapsed="0.000047"/>
</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-10-15T03:03:38.967108" elapsed="0.000027"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:03:38.966386" elapsed="0.000794"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:03:38.966233" elapsed="0.000987"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:03:38.967275" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T03:03:38.967508" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:03:38.964510" elapsed="0.003064"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:38.963882" elapsed="0.003745"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:38.968093" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:38.967703" elapsed="0.000492"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:38.963771" elapsed="0.004495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.970939" 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-10-15T03:03:38.969956" elapsed="0.001117"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:03:38.971180" elapsed="0.000071"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:03:38.949042" elapsed="0.022462"/>
</kw>
<msg time="2026-10-15T03:03:38.971879" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:03:38.939639" elapsed="0.032311"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:38.976579" elapsed="0.000027"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:38.980536" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:38.984366" elapsed="0.000026"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:38.984598" 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-10-15T03:03:38.984778" elapsed="0.000019"/>
</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-10-15T03:03:38.985179" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:38.985035" elapsed="0.000291"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:38.985022" elapsed="0.000328"/>
</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-10-15T03:03:38.985532" 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-10-15T03:03:38.985710" elapsed="0.000018"/>
</kw>
<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-10-15T03:03:38.985886" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:03:38.984994" elapsed="0.000942"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:03:38.984862" elapsed="0.001097"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:38.986105" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:38.986172" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:03:38.986277" 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-10-15T03:03:38.938080" elapsed="0.048220"/>
</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-10-15T03:03:38.987608" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:38.987254" elapsed="0.000504">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:38.987989" 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-10-15T03:03:38.986935" elapsed="0.001078"/>
</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-10-15T03:03:38.988294" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:38.988077" elapsed="0.000268"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.989052" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:38.988595" elapsed="0.000482"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:38.988367" elapsed="0.000741"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:38.988061" elapsed="0.001067"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.989664" 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-10-15T03:03:38.989282" elapsed="0.000407"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:03:38.989736" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T03:03:38.989884" 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-manganese/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-10-15T03:03:38.986620" elapsed="0.003289"/>
</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-10-15T03:03:38.991164" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:38.990821" elapsed="0.000487">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:38.991566" 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-10-15T03:03:38.990485" elapsed="0.001106"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:03:38.991763" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:03:38.991658" elapsed="0.000161"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:38.991641" elapsed="0.000200"/>
</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-10-15T03:03:38.992011" elapsed="0.000020"/>
</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-10-15T03:03:38.992220" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:03:38.992283" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:03:38.992409" 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-manganese/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-10-15T03:03:38.990161" elapsed="0.002271"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.993733" 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-10-15T03:03:38.993507" elapsed="0.000268"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:38.994188" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:38.993975" elapsed="0.000254"/>
</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-10-15T03:03:39.002960" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:03:39.003066" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:03:39.003268" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:38.994567" elapsed="0.009145">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:38.994288" elapsed="0.009510">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:39.004025" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:39.003832" elapsed="0.000258"/>
</branch>
<status status="FAIL" start="2026-10-15T03:03:38.994271" elapsed="0.009841">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:39.004662" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:39.004794" elapsed="0.000017"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:03:39.004757" elapsed="0.000080"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:39.004741" elapsed="0.000128"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:39.005008" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:03:39.005071" 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-10-15T03:03:38.992763" elapsed="0.012413">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:39.005240" elapsed="0.000014"/>
</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-10-15T03:03:38.920863" elapsed="0.084462">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:39.005589" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:39.005407" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:39.005392" elapsed="0.000282"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:39.005765" 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-10-15T03:03:38.919306" elapsed="0.086563">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:03:38.913238" elapsed="0.092690">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:03:38.912950" elapsed="0.093031">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:03:38.908080" elapsed="0.097982">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:38.907551" elapsed="0.098556">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:03:38.907517" elapsed="0.098617">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:39.006389" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:39.006191" elapsed="0.000249"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:39.006177" 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-10-15T03:03:38.905263" elapsed="0.101317">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:49.015216" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:49.014579" elapsed="0.000778"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:49.014531" elapsed="0.000912"/>
</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-10-15T03:03:49.019005" 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-10-15T03:03:49.018072" elapsed="0.000997"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.020210" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:03:49.019418" elapsed="0.000856"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:03:49.020375" elapsed="0.000110"/>
</return>
<msg time="2026-10-15T03:03:49.020737" 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-10-15T03:03:49.017124" elapsed="0.003669"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.023122" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:49.022429" elapsed="0.000751"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:03:49.023276" elapsed="0.000063"/>
</return>
<msg time="2026-10-15T03:03:49.023653" 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-10-15T03:03:49.021617" elapsed="0.002110"/>
</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-10-15T03:03:49.063911" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:49.062727" elapsed="0.001338"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:03:49.066667" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:03:49.066330" elapsed="0.000448">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:49.067111" 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-10-15T03:03:49.065588" elapsed="0.001663"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.069784" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:49.068792" elapsed="0.001226"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:03:49.071885" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:03:49.072275" 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-10-15T03:03:49.071404" elapsed="0.001005"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.074618" 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-10-15T03:03:49.074026" elapsed="0.000754"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.077055" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:49.076339" elapsed="0.000776"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.077794" 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-10-15T03:03:49.077360" elapsed="0.000497"/>
</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-10-15T03:03:49.078318" elapsed="0.000039"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:49.078634" elapsed="0.000037"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:49.078923" elapsed="0.000039"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:03:49.078096" elapsed="0.000915"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:03:49.077927" elapsed="0.001125"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:03:49.079124" elapsed="0.000052"/>
</return>
<msg time="2026-10-15T03:03:49.079381" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:03:49.075743" elapsed="0.003749"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:49.075063" elapsed="0.004488"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:49.080033" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:49.079632" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:49.074960" elapsed="0.005281"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.082679" 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-10-15T03:03:49.081677" elapsed="0.001179"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:03:49.082969" elapsed="0.000073"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:03:49.058853" elapsed="0.024455"/>
</kw>
<msg time="2026-10-15T03:03:49.083734" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:03:49.047180" elapsed="0.036656"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:49.088707" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:49.092699" elapsed="0.000026"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:49.097060" elapsed="0.000028"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:49.097335" elapsed="0.000033"/>
</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-10-15T03:03:49.097585" 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-10-15T03:03:49.098011" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:49.097862" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:49.097848" 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-10-15T03:03:49.098354" 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-10-15T03:03:49.098554" 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-10-15T03:03:49.098724" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:03:49.097814" elapsed="0.000960"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:03:49.097661" elapsed="0.001260"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:49.099078" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:49.099148" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:03:49.099265" 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-10-15T03:03:49.045682" elapsed="0.053608"/>
</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-10-15T03:03:49.100717" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:49.100325" elapsed="0.000571">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:49.101119" 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-10-15T03:03:49.099959" elapsed="0.001186"/>
</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-10-15T03:03:49.101439" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:49.101212" elapsed="0.000299"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.102230" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:49.101749" elapsed="0.000508"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:49.101535" elapsed="0.000755"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:49.101195" elapsed="0.001116"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.102865" 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-10-15T03:03:49.102492" elapsed="0.000400"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:03:49.102938" elapsed="0.000029"/>
</return>
<msg time="2026-10-15T03:03:49.103068" 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-manganese/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-10-15T03:03:49.099631" elapsed="0.003460"/>
</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-10-15T03:03:49.104394" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:49.104035" elapsed="0.000537">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:49.104794" 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-10-15T03:03:49.103687" elapsed="0.001149"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:03:49.105009" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:03:49.104906" elapsed="0.000160"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:49.104888" elapsed="0.000202"/>
</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-10-15T03:03:49.105243" elapsed="0.000020"/>
</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-10-15T03:03:49.105471" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:03:49.105537" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:03:49.105667" 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-manganese/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-10-15T03:03:49.103344" elapsed="0.002347"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.107019" 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-10-15T03:03:49.106760" elapsed="0.000304"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:49.107521" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:49.107258" elapsed="0.000306"/>
</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-10-15T03:03:49.113998" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:03:49.114120" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:03:49.114316" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:49.107872" elapsed="0.006864">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:49.107627" elapsed="0.007216">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:49.115046" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:49.114877" elapsed="0.000231"/>
</branch>
<status status="FAIL" start="2026-10-15T03:03:49.107610" elapsed="0.007520">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:49.115703" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:49.115859" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:03:49.115817" elapsed="0.000084"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:49.115785" 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-10-15T03:03:49.116063" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:03:49.116145" 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-10-15T03:03:49.106024" elapsed="0.010240">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:49.116334" 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-10-15T03:03:49.028598" elapsed="0.087827">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:49.116734" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:49.116536" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:49.116519" elapsed="0.000331"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:49.116926" 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-10-15T03:03:49.027176" elapsed="0.089850">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:03:49.021232" elapsed="0.095856">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:03:49.020930" elapsed="0.096216">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:03:49.016240" elapsed="0.101012">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:49.015661" elapsed="0.101643">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:03:49.015623" elapsed="0.101710">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:49.117623" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:49.117398" elapsed="0.000279"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:49.117381" elapsed="0.000320"/>
</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-10-15T03:03:49.013654" elapsed="0.104121">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:59.129836" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:59.129070" elapsed="0.000958"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:59.129010" elapsed="0.001105"/>
</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-10-15T03:03:59.135011" 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-10-15T03:03:59.133705" elapsed="0.001397"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.136657" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:03:59.135660" elapsed="0.001087"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:03:59.136924" elapsed="0.000104"/>
</return>
<msg time="2026-10-15T03:03:59.137379" 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-10-15T03:03:59.132309" elapsed="0.005188"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.140727" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:59.139749" elapsed="0.001227"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:03:59.141117" elapsed="0.000091"/>
</return>
<msg time="2026-10-15T03:03:59.141485" 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-10-15T03:03:59.138610" elapsed="0.002932"/>
</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-10-15T03:03:59.184939" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:59.183296" elapsed="0.001853"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:03:59.188958" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:03:59.188428" elapsed="0.000680">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:59.189721" 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-10-15T03:03:59.187241" elapsed="0.002675"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.192399" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:59.191426" elapsed="0.001229"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:03:59.194688" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:03:59.195089" 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-10-15T03:03:59.194162" elapsed="0.001067"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.197701" 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-10-15T03:03:59.197045" elapsed="0.000844"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.199974" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:59.199594" elapsed="0.000443"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.200815" 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-10-15T03:03:59.200300" elapsed="0.000553"/>
</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-10-15T03:03:59.201297" elapsed="0.000030"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.201592" elapsed="0.000032"/>
</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-10-15T03:03:59.201825" elapsed="0.000019"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:03:59.201105" elapsed="0.000772"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:03:59.200924" elapsed="0.000982"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:03:59.201949" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T03:03:59.202121" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:03:59.198961" elapsed="0.003207"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:59.198146" elapsed="0.004058"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.202561" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:59.202262" elapsed="0.000373"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:59.198038" elapsed="0.004650"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.204521" 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-10-15T03:03:59.203703" elapsed="0.000918"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:03:59.204705" elapsed="0.000073"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:03:59.178445" elapsed="0.026531"/>
</kw>
<msg time="2026-10-15T03:03:59.205274" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:03:59.167937" elapsed="0.037400"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.209857" elapsed="0.000037"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.213890" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.217858" elapsed="0.000027"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.218193" 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-10-15T03:03:59.218392" 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-10-15T03:03:59.218882" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:59.218704" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:59.218687" 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-10-15T03:03:59.219241" 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-10-15T03:03:59.219430" elapsed="0.000044"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds `values` to the end of `list`.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.219628" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:03:59.218645" elapsed="0.001035"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:03:59.218492" elapsed="0.001214"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.219874" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:59.219949" elapsed="0.000018"/>
</return>
<msg time="2026-10-15T03:03:59.220111" 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-10-15T03:03:59.166354" elapsed="0.053785"/>
</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-10-15T03:03:59.221828" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:59.221298" elapsed="0.000719">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:59.222255" 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-10-15T03:03:59.220864" elapsed="0.001418"/>
</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-10-15T03:03:59.222636" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:59.222355" elapsed="0.000339"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.223408" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:03:59.222936" elapsed="0.000500"/>
</kw>
<status status="PASS" start="2026-10-15T03:03:59.222718" elapsed="0.000777"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:59.222336" elapsed="0.001181"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.224080" 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-10-15T03:03:59.223681" elapsed="0.000427"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:03:59.224157" elapsed="0.000033"/>
</return>
<msg time="2026-10-15T03:03:59.224296" 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-manganese/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-10-15T03:03:59.220486" elapsed="0.003834"/>
</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-10-15T03:03:59.225644" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:03:59.225273" elapsed="0.000539">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:03:59.226046" 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-10-15T03:03:59.224936" elapsed="0.001138"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:03:59.226257" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-10-15T03:03:59.226146" elapsed="0.000172"/>
</branch>
<status status="PASS" start="2026-10-15T03:03:59.226127" elapsed="0.000215"/>
</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-10-15T03:03:59.226602" elapsed="0.000025"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.226887" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:03:59.226955" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:03:59.227090" 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-manganese/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-10-15T03:03:59.224602" elapsed="0.002513"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.228478" 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-10-15T03:03:59.228210" elapsed="0.000316"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:03:59.228968" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:03:59.228724" elapsed="0.000287"/>
</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-10-15T03:03:59.235283" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:03:59.235392" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:03:59.235616" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:59.229311" elapsed="0.006713">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:59.229075" elapsed="0.007037">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:59.236331" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:59.236146" elapsed="0.000248"/>
</branch>
<status status="FAIL" start="2026-10-15T03:03:59.229057" elapsed="0.007361">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:59.237056" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:59.237197" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:03:59.237158" elapsed="0.000082"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:59.237139" elapsed="0.000122"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T03:03:59.237406" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:03:59.237498" 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-10-15T03:03:59.227439" elapsed="0.010168">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:59.237681" elapsed="0.000018"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-10-15T03:03:59.147586" elapsed="0.090206">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:59.238068" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:59.237882" elapsed="0.000256"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:59.237866" elapsed="0.000295"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:03:59.238242" 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-10-15T03:03:59.145752" elapsed="0.092588">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:03:59.138059" elapsed="0.100357">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:03:59.137663" elapsed="0.100848">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:03:59.131076" elapsed="0.107527">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:03:59.130284" elapsed="0.108370">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:03:59.130237" elapsed="0.108447">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:03:59.238993" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:03:59.238771" elapsed="0.000292"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:03:59.238738" 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-10-15T03:03:59.127731" elapsed="0.111459">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:09.247996" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:09.247199" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:09.247153" elapsed="0.001122"/>
</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-10-15T03:04:09.251993" 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-10-15T03:04:09.251057" elapsed="0.000998"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.253240" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:04:09.252409" elapsed="0.000891"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:04:09.253401" elapsed="0.000110"/>
</return>
<msg time="2026-10-15T03:04:09.253839" 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-10-15T03:04:09.250065" elapsed="0.003831"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.256359" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:09.255429" elapsed="0.001011"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:04:09.256621" elapsed="0.000114"/>
</return>
<msg time="2026-10-15T03:04:09.257017" 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-10-15T03:04:09.254663" elapsed="0.002422"/>
</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-10-15T03:04:09.294501" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:09.293631" elapsed="0.001061"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:04:09.297598" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:04:09.297163" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:09.297994" 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-10-15T03:04:09.296390" elapsed="0.001738"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.300638" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:09.299671" elapsed="0.001332"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:04:09.303416" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:04:09.303944" 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-10-15T03:04:09.302932" elapsed="0.001150"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.306398" 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-10-15T03:04:09.305762" elapsed="0.000839"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.308616" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:09.308237" elapsed="0.000441"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.309340" 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-10-15T03:04:09.308958" elapsed="0.000418"/>
</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-10-15T03:04:09.309910" elapsed="0.000030"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:09.310246" elapsed="0.000036"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given `key_value_pairs` and/or `items` to the `dictionary`.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:09.310534" elapsed="0.000037"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:04:09.309707" elapsed="0.000919"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:04:09.309445" elapsed="0.001222"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:04:09.310871" elapsed="0.000053"/>
</return>
<msg time="2026-10-15T03:04:09.311113" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:04:09.307644" elapsed="0.003554"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:09.306877" elapsed="0.004394"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:09.311947" elapsed="0.000074"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:09.311370" elapsed="0.000732"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:09.306776" elapsed="0.005436"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.314991" 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-10-15T03:04:09.313916" elapsed="0.001215"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:04:09.315249" elapsed="0.000078"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:04:09.290535" elapsed="0.025091"/>
</kw>
<msg time="2026-10-15T03:04:09.316024" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:04:09.283252" elapsed="0.032852"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:09.322585" elapsed="0.000057"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:09.327865" elapsed="0.000031"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:09.332202" elapsed="0.000028"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:09.332500" 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-10-15T03:04:09.332738" elapsed="0.000033"/>
</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-10-15T03:04:09.333228" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:09.333076" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:09.333059" elapsed="0.000353"/>
</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-10-15T03:04:09.333637" 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-10-15T03:04:09.333841" 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-10-15T03:04:09.334027" elapsed="0.000029"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:04:09.333019" elapsed="0.001082"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:04:09.332855" elapsed="0.001277"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:09.334328" elapsed="0.000023"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:09.334406" elapsed="0.000018"/>
</return>
<msg time="2026-10-15T03:04:09.334576" 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-10-15T03:04:09.281785" elapsed="0.052818"/>
</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-10-15T03:04:09.336289" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:09.335842" elapsed="0.000640">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:09.336730" 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-10-15T03:04:09.335353" elapsed="0.001404"/>
</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-10-15T03:04:09.337070" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:09.336825" elapsed="0.000298"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.337852" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:09.337339" elapsed="0.000538"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:09.337145" elapsed="0.000765"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:09.336808" elapsed="0.001122"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.338439" 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-10-15T03:04:09.338088" elapsed="0.000403"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:04:09.338541" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T03:04:09.338685" 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-manganese/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-10-15T03:04:09.334933" elapsed="0.003845"/>
</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-10-15T03:04:09.340067" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:09.339703" elapsed="0.000541">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:09.340510" 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-10-15T03:04:09.339344" elapsed="0.001192"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:04:09.340733" elapsed="0.000028"/>
</return>
<status status="PASS" start="2026-10-15T03:04:09.340615" elapsed="0.000177"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:09.340597" elapsed="0.000218"/>
</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-10-15T03:04:09.340964" 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-10-15T03:04:09.341210" elapsed="0.000028"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:04:09.341293" elapsed="0.000022"/>
</return>
<msg time="2026-10-15T03:04:09.341432" 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-manganese/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-10-15T03:04:09.339042" elapsed="0.002488"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.342892" 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-10-15T03:04:09.342632" elapsed="0.000304"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:09.343343" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:09.343123" elapsed="0.000261"/>
</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-10-15T03:04:09.349626" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:04:09.349766" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:04:09.350003" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:09.343704" elapsed="0.006812">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:09.343445" elapsed="0.007175">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:09.350941" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:09.350664" elapsed="0.000368"/>
</branch>
<status status="FAIL" start="2026-10-15T03:04:09.343429" elapsed="0.007636">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:09.351803" elapsed="0.000034"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:09.351984" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:04:09.351933" elapsed="0.000111"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:09.351909" 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>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:09.352282" elapsed="0.000030"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:04:09.352369" elapsed="0.000019"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-10-15T03:04:09.341870" elapsed="0.010666">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:09.352634" 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-10-15T03:04:09.264446" elapsed="0.088333">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:09.353111" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:09.352905" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:09.352882" elapsed="0.000339"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:09.353308" 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-10-15T03:04:09.262335" elapsed="0.091103">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:04:09.254269" elapsed="0.099281">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:04:09.254010" elapsed="0.099618">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:04:09.249092" elapsed="0.104670">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:09.248486" elapsed="0.105343">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:04:09.248403" elapsed="0.105465">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:09.354225" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:09.353953" elapsed="0.000344"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:09.353931" elapsed="0.000397"/>
</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-10-15T03:04:09.246268" elapsed="0.108166">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:19.361066" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:19.360480" elapsed="0.000707"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:19.360419" elapsed="0.000815"/>
</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-10-15T03:04:19.363989" 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-10-15T03:04:19.363237" elapsed="0.000795"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.364800" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:04:19.364272" elapsed="0.000567"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:04:19.364907" elapsed="0.000051"/>
</return>
<msg time="2026-10-15T03:04:19.365114" 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-10-15T03:04:19.362581" elapsed="0.002567"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.366770" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:19.366309" elapsed="0.000512"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:04:19.366892" elapsed="0.000042"/>
</return>
<msg time="2026-10-15T03:04:19.367078" 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-10-15T03:04:19.365792" elapsed="0.001321"/>
</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-10-15T03:04:19.396421" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:19.395439" elapsed="0.001380"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:04:19.399527" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:04:19.399164" elapsed="0.000469">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:19.399942" 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-10-15T03:04:19.398322" elapsed="0.001758"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.402790" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:19.401768" elapsed="0.001253"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:04:19.405148" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:04:19.405579" 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-10-15T03:04:19.404648" elapsed="0.001095"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.408058" 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-10-15T03:04:19.407382" elapsed="0.000845"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.410382" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:19.410011" elapsed="0.000562"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.411295" 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-10-15T03:04:19.410870" elapsed="0.000461"/>
</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-10-15T03:04:19.411830" elapsed="0.000031"/>
</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-10-15T03:04:19.412140" elapsed="0.000034"/>
</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-10-15T03:04:19.412351" elapsed="0.000019"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:04:19.411616" elapsed="0.000786"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:04:19.411403" elapsed="0.001028"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:04:19.412517" elapsed="0.000040"/>
</return>
<msg time="2026-10-15T03:04:19.412726" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:04:19.409333" elapsed="0.003444"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:19.408614" elapsed="0.004201"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:19.413155" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:19.412876" elapsed="0.000371"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:19.408373" elapsed="0.004928"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.415140" 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-10-15T03:04:19.414352" elapsed="0.000885"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:04:19.415318" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:04:19.392166" elapsed="0.023416"/>
</kw>
<msg time="2026-10-15T03:04:19.415865" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:04:19.384296" elapsed="0.031630"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:19.420561" elapsed="0.000036"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:19.424595" elapsed="0.000048"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:19.428637" elapsed="0.000048"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:19.428947" 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-10-15T03:04:19.429140" elapsed="0.000019"/>
</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-10-15T03:04:19.429616" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:19.429430" elapsed="0.000360"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:19.429414" elapsed="0.000402"/>
</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-10-15T03:04:19.429976" elapsed="0.000019"/>
</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-10-15T03:04:19.430153" elapsed="0.000018"/>
</kw>
<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-10-15T03:04:19.430312" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:04:19.429375" elapsed="0.000983"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:04:19.429216" elapsed="0.001167"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:19.430561" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:19.430635" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T03:04:19.430792" 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-10-15T03:04:19.382950" elapsed="0.047868"/>
</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-10-15T03:04:19.432335" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:19.431937" elapsed="0.000583">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:19.432772" 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-10-15T03:04:19.431524" elapsed="0.001273"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:19.433104" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:19.432868" elapsed="0.000287"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.433897" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:19.433375" elapsed="0.000548"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:19.433179" elapsed="0.000776"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:19.432849" elapsed="0.001126"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.434532" 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-10-15T03:04:19.434133" elapsed="0.000425"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:04:19.434606" elapsed="0.000031"/>
</return>
<msg time="2026-10-15T03:04:19.434760" 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-manganese/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-10-15T03:04:19.431152" elapsed="0.003631"/>
</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-10-15T03:04:19.436084" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:19.435726" elapsed="0.000508">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:19.436530" 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-10-15T03:04:19.435341" elapsed="0.001221"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:04:19.436752" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-10-15T03:04:19.436632" elapsed="0.000178"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:19.436614" elapsed="0.000218"/>
</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-10-15T03:04:19.436982" elapsed="0.000019"/>
</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-10-15T03:04:19.437218" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:04:19.437277" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:04:19.437403" 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-manganese/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-10-15T03:04:19.435037" elapsed="0.002389"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.438798" 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-10-15T03:04:19.438536" elapsed="0.000307"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:19.439248" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:19.439031" elapsed="0.000257"/>
</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-10-15T03:04:19.446953" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:04:19.447066" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:04:19.447280" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:19.439638" elapsed="0.008087">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:19.439349" elapsed="0.008467">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:19.448054" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:19.447853" elapsed="0.000262"/>
</branch>
<status status="FAIL" start="2026-10-15T03:04:19.439332" elapsed="0.008805">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:19.448727" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:19.448865" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:04:19.448827" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:19.448809" 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-10-15T03:04:19.449063" elapsed="0.000019"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:04:19.449125" 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-10-15T03:04:19.437800" elapsed="0.011428">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:19.449296" elapsed="0.000014"/>
</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-10-15T03:04:19.370776" elapsed="0.078610">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:19.449692" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:19.449515" elapsed="0.000243"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:19.449497" elapsed="0.000283"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:19.449864" 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-10-15T03:04:19.369657" elapsed="0.080299">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:04:19.365420" elapsed="0.084595">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:04:19.365220" elapsed="0.084849">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:04:19.361815" elapsed="0.088338">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:19.361344" elapsed="0.088857">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:04:19.361313" elapsed="0.088916">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:19.450521" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:19.450289" elapsed="0.000287"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:19.450274" elapsed="0.000324"/>
</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-10-15T03:04:19.359822" elapsed="0.090861">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:29.458412" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:29.457853" elapsed="0.000717"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:29.457814" elapsed="0.000799"/>
</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-10-15T03:04:29.460677" 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-10-15T03:04:29.460104" elapsed="0.000613"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.461329" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:04:29.460939" elapsed="0.000426"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:04:29.461428" elapsed="0.000067"/>
</return>
<msg time="2026-10-15T03:04:29.461659" 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-10-15T03:04:29.459523" elapsed="0.002171"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.463151" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:29.462716" elapsed="0.000477"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:04:29.463264" elapsed="0.000052"/>
</return>
<msg time="2026-10-15T03:04:29.463482" 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-10-15T03:04:29.462157" elapsed="0.001361"/>
</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-10-15T03:04:29.490795" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:29.489772" elapsed="0.001179"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:04:29.493976" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:04:29.493441" elapsed="0.000638">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:29.494374" 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-10-15T03:04:29.492698" elapsed="0.001844"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.497110" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:29.496174" elapsed="0.001163"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:04:29.499394" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:04:29.499827" 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-10-15T03:04:29.498944" elapsed="0.001031"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.501744" 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-10-15T03:04:29.501311" elapsed="0.000549"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.503294" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:29.503036" elapsed="0.000303"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.503828" 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-10-15T03:04:29.503540" elapsed="0.000313"/>
</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-10-15T03:04:29.504152" elapsed="0.000020"/>
</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-10-15T03:04:29.504342" elapsed="0.000022"/>
</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-10-15T03:04:29.504549" elapsed="0.000020"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:04:29.504023" elapsed="0.000580"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:04:29.503903" elapsed="0.000743"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:04:29.504692" elapsed="0.000040"/>
</return>
<msg time="2026-10-15T03:04:29.504869" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:04:29.502590" elapsed="0.002326"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:29.502037" elapsed="0.002916"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:29.505285" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:29.505012" elapsed="0.000348"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:29.501963" elapsed="0.003449"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.507262" 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-10-15T03:04:29.506543" elapsed="0.000816"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:04:29.507439" elapsed="0.000095"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:04:29.486277" elapsed="0.021446"/>
</kw>
<msg time="2026-10-15T03:04:29.507987" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:04:29.479140" elapsed="0.028905"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:29.512460" elapsed="0.000037"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:29.516429" elapsed="0.000046"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:29.520376" elapsed="0.000026"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:29.520677" 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-10-15T03:04:29.520869" elapsed="0.000019"/>
</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-10-15T03:04:29.521291" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:29.521142" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:29.521126" elapsed="0.000367"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:29.521669" 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-10-15T03:04:29.521849" 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-10-15T03:04:29.522008" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:04:29.521087" elapsed="0.000969"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:04:29.520942" elapsed="0.001139"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:29.522231" elapsed="0.000018"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:29.522301" elapsed="0.000017"/>
</return>
<msg time="2026-10-15T03:04:29.522458" 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-10-15T03:04:29.478056" elapsed="0.044431"/>
</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-10-15T03:04:29.523956" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:29.523548" elapsed="0.000566">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:29.524338" 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-10-15T03:04:29.523141" elapsed="0.001222"/>
</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-10-15T03:04:29.524710" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:29.524431" elapsed="0.000334"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.525432" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:29.524976" elapsed="0.000507"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:29.524787" elapsed="0.000731"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:29.524414" elapsed="0.001125"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.526067" 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-10-15T03:04:29.525715" elapsed="0.000378"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:04:29.526141" elapsed="0.000030"/>
</return>
<msg time="2026-10-15T03:04:29.526274" 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-manganese/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-10-15T03:04:29.522811" elapsed="0.003486"/>
</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-10-15T03:04:29.527595" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:29.527223" elapsed="0.000533">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:29.527978" 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-10-15T03:04:29.526901" elapsed="0.001101"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:04:29.528176" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-10-15T03:04:29.528072" elapsed="0.000163"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:29.528054" elapsed="0.000203"/>
</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-10-15T03:04:29.528409" elapsed="0.000020"/>
</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-10-15T03:04:29.528740" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:04:29.528803" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:04:29.528932" 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-manganese/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-10-15T03:04:29.526577" elapsed="0.002378"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.530264" 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-10-15T03:04:29.530026" elapsed="0.000282"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:29.530753" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:29.530517" elapsed="0.000277"/>
</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-10-15T03:04:29.536729" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:04:29.536855" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:04:29.537071" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:29.531082" elapsed="0.006420">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:29.530856" elapsed="0.006745">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:29.537869" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:29.537654" elapsed="0.000278"/>
</branch>
<status status="FAIL" start="2026-10-15T03:04:29.530839" elapsed="0.007116">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:29.538533" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:29.538688" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:04:29.538648" elapsed="0.000082"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:29.538616" elapsed="0.000135"/>
</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-10-15T03:04:29.538892" elapsed="0.000020"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:04:29.538955" 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-10-15T03:04:29.529273" elapsed="0.009790">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:29.539131" 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-10-15T03:04:29.467009" elapsed="0.072214">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:29.539523" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:29.539308" elapsed="0.000281"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:29.539292" elapsed="0.000320"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:29.539710" 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-10-15T03:04:29.465990" elapsed="0.073818">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:04:29.461930" elapsed="0.077938">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:04:29.461767" elapsed="0.078157">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:04:29.459009" elapsed="0.081002">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:29.458703" elapsed="0.081356">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:04:29.458682" elapsed="0.081407">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:29.540350" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:29.540150" elapsed="0.000251"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:29.540135" elapsed="0.000288"/>
</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-10-15T03:04:29.457051" elapsed="0.083467">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:39.548515" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:39.547877" elapsed="0.000793"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:39.547834" elapsed="0.000890"/>
</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-10-15T03:04:39.550914" 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-10-15T03:04:39.550478" elapsed="0.000465"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.551470" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:04:39.551102" elapsed="0.000397"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:04:39.551545" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T03:04:39.551717" 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-10-15T03:04:39.549996" elapsed="0.001758"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.553165" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:39.552746" elapsed="0.000459"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:04:39.553270" elapsed="0.000042"/>
</return>
<msg time="2026-10-15T03:04:39.553483" 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-10-15T03:04:39.552233" elapsed="0.001290"/>
</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-10-15T03:04:39.572871" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:39.572207" elapsed="0.000770"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:04:39.575238" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:04:39.574980" elapsed="0.000341">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:39.575562" 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-10-15T03:04:39.574198" elapsed="0.001491"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.577664" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:39.576920" elapsed="0.001784"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:04:39.580254" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:04:39.580735" 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-10-15T03:04:39.579903" elapsed="0.000957"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.582624" 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-10-15T03:04:39.582088" elapsed="0.000665"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.584124" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:39.583875" elapsed="0.000291"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.584780" 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-10-15T03:04:39.584346" elapsed="0.000461"/>
</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-10-15T03:04:39.585105" 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-10-15T03:04:39.585299" elapsed="0.000023"/>
</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-10-15T03:04:39.585501" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:04:39.584975" elapsed="0.000584"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:04:39.584857" elapsed="0.000742"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:04:39.585651" elapsed="0.000040"/>
</return>
<msg time="2026-10-15T03:04:39.585838" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:04:39.583422" elapsed="0.002465"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:39.582938" elapsed="0.002987"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:39.586256" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:39.585983" elapsed="0.000350"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:39.582861" elapsed="0.003526"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.588177" 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-10-15T03:04:39.587464" elapsed="0.000812"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:04:39.588379" elapsed="0.000096"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:04:39.569981" elapsed="0.018701"/>
</kw>
<msg time="2026-10-15T03:04:39.588960" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:04:39.565169" elapsed="0.023849"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:39.594015" elapsed="0.000027"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:39.598127" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:39.602102" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:39.602333" 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-10-15T03:04:39.602539" 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-10-15T03:04:39.602948" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:39.602805" elapsed="0.000297"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:39.602790" 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-10-15T03:04:39.603284" 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-10-15T03:04:39.603485" 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-10-15T03:04:39.603672" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:04:39.602759" elapsed="0.000964"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:04:39.602623" elapsed="0.001123"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:39.603895" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:39.603963" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:04:39.604077" 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-10-15T03:04:39.564433" elapsed="0.039668"/>
</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-10-15T03:04:39.605804" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:39.605338" elapsed="0.000643">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:39.606234" 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-10-15T03:04:39.604888" elapsed="0.001376"/>
</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-10-15T03:04:39.606658" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:39.606346" elapsed="0.000377"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.607517" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:39.606987" elapsed="0.000559"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:39.606750" elapsed="0.000833"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:39.606325" elapsed="0.001300"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.608224" 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-10-15T03:04:39.607829" elapsed="0.000424"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:04:39.608305" elapsed="0.000033"/>
</return>
<msg time="2026-10-15T03:04:39.608485" 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-manganese/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-10-15T03:04:39.604464" elapsed="0.004050"/>
</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-10-15T03:04:39.609996" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:39.609601" elapsed="0.000566">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:39.610417" 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-10-15T03:04:39.609185" elapsed="0.001260"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:04:39.610743" elapsed="0.000034"/>
</return>
<status status="PASS" start="2026-10-15T03:04:39.610617" elapsed="0.000202"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:39.610584" elapsed="0.000266"/>
</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-10-15T03:04:39.611060" elapsed="0.000029"/>
</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-10-15T03:04:39.611352" elapsed="0.000027"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:04:39.611430" elapsed="0.000036"/>
</return>
<msg time="2026-10-15T03:04:39.611617" 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-manganese/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-10-15T03:04:39.608828" elapsed="0.002822"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.613326" 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-10-15T03:04:39.613050" elapsed="0.000327"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:39.613932" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:39.613644" elapsed="0.000345"/>
</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-10-15T03:04:39.621009" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:04:39.621147" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:04:39.621403" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:39.614396" elapsed="0.007575">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:39.614078" elapsed="0.008004">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:39.622363" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:39.622125" elapsed="0.000341"/>
</branch>
<status status="FAIL" start="2026-10-15T03:04:39.614054" elapsed="0.008449">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:39.623215" elapsed="0.000035"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:39.623395" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:04:39.623345" elapsed="0.000136"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:39.623320" elapsed="0.000193"/>
</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-10-15T03:04:39.623726" elapsed="0.000030"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:04:39.623817" 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-10-15T03:04:39.612074" elapsed="0.011889">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:39.624062" 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-10-15T03:04:39.556926" elapsed="0.067270">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:39.624610" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:39.624319" elapsed="0.000455"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:39.624297" elapsed="0.000525"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:39.624933" elapsed="0.000026"/>
</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-10-15T03:04:39.555929" elapsed="0.069167">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:04:39.552004" elapsed="0.073186">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:04:39.551830" elapsed="0.073440">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:04:39.549290" elapsed="0.076110">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:39.548836" elapsed="0.076670">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:04:39.548804" elapsed="0.076747">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:39.625978" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:39.625666" elapsed="0.000393"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:39.625641" elapsed="0.000452"/>
</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-10-15T03:04:39.546974" elapsed="0.079233">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:49.632255" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:49.631805" elapsed="0.000552"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:49.631774" elapsed="0.000620"/>
</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-10-15T03:04:49.634695" 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-10-15T03:04:49.634052" elapsed="0.000682"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.635371" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:04:49.634948" elapsed="0.000464"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:04:49.635496" elapsed="0.000051"/>
</return>
<msg time="2026-10-15T03:04:49.635733" 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-10-15T03:04:49.633405" elapsed="0.002366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.637175" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:49.636766" elapsed="0.000448"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:04:49.637272" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T03:04:49.637464" 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-10-15T03:04:49.636253" elapsed="0.001249"/>
</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-10-15T03:04:49.663595" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:49.662900" elapsed="0.000835"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:04:49.665766" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:04:49.665503" elapsed="0.000342">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:49.666045" 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-10-15T03:04:49.664968" elapsed="0.001177"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.668016" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:49.667265" elapsed="0.000974"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:04:49.669733" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:04:49.670012" 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-10-15T03:04:49.669351" elapsed="0.000758"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.671676" 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-10-15T03:04:49.671215" elapsed="0.000604"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.673311" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:49.673059" elapsed="0.000298"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.673857" 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-10-15T03:04:49.673582" 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-10-15T03:04:49.674187" 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-10-15T03:04:49.674381" elapsed="0.000023"/>
</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-10-15T03:04:49.674691" elapsed="0.000024"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:04:49.674055" elapsed="0.000699"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:04:49.673934" elapsed="0.000850"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:04:49.674830" elapsed="0.000040"/>
</return>
<msg time="2026-10-15T03:04:49.675009" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:04:49.672639" elapsed="0.002421"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:49.672003" elapsed="0.003097"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:49.675439" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:49.675159" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:49.671928" elapsed="0.003691"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.677364" 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-10-15T03:04:49.676646" elapsed="0.000838"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:04:49.677593" elapsed="0.000056"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:04:49.660227" elapsed="0.017602"/>
</kw>
<msg time="2026-10-15T03:04:49.678094" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:04:49.652102" elapsed="0.026048"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:49.682536" elapsed="0.000038"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:49.686500" 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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:49.690463" elapsed="0.000034"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:49.690755" 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-10-15T03:04:49.690964" 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-10-15T03:04:49.691396" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:49.691246" elapsed="0.000367"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:49.691228" elapsed="0.000411"/>
</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-10-15T03:04:49.691824" 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-10-15T03:04:49.692011" 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-10-15T03:04:49.692177" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:04:49.691191" elapsed="0.001037"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:04:49.691043" elapsed="0.001211"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:49.692407" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:49.692510" elapsed="0.000020"/>
</return>
<msg time="2026-10-15T03:04:49.692681" 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-10-15T03:04:49.651026" elapsed="0.041687"/>
</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-10-15T03:04:49.694385" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:49.693863" elapsed="0.000742">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:49.694837" 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-10-15T03:04:49.693393" elapsed="0.001469"/>
</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-10-15T03:04:49.695169" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:49.694930" elapsed="0.000292"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.695987" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:49.695437" elapsed="0.000576"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:49.695245" elapsed="0.000801"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:49.694913" elapsed="0.001153"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.696673" 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-10-15T03:04:49.696265" elapsed="0.000434"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:04:49.696747" elapsed="0.000031"/>
</return>
<msg time="2026-10-15T03:04:49.696879" 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-manganese/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-10-15T03:04:49.693030" elapsed="0.003872"/>
</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-10-15T03:04:49.698205" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:49.697852" elapsed="0.000503">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:49.698657" 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-10-15T03:04:49.697513" elapsed="0.001169"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:04:49.698849" elapsed="0.000025"/>
</return>
<status status="PASS" start="2026-10-15T03:04:49.698749" elapsed="0.000156"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:49.698732" elapsed="0.000195"/>
</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-10-15T03:04:49.699076" elapsed="0.000019"/>
</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-10-15T03:04:49.699364" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:04:49.699426" elapsed="0.000016"/>
</return>
<msg time="2026-10-15T03:04:49.699613" 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-manganese/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-10-15T03:04:49.697179" elapsed="0.002458"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.700912" 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-10-15T03:04:49.700681" elapsed="0.000274"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:49.701357" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:49.701140" elapsed="0.000257"/>
</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-10-15T03:04:49.707163" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:04:49.707270" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:04:49.707491" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:49.701731" elapsed="0.006150">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:49.701493" elapsed="0.006470">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:49.708163" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:49.707995" elapsed="0.000228"/>
</branch>
<status status="FAIL" start="2026-10-15T03:04:49.701441" elapsed="0.006806">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:49.708832" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:49.708962" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:04:49.708927" elapsed="0.000075"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:49.708910" elapsed="0.000112"/>
</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-10-15T03:04:49.709178" elapsed="0.000025"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:04:49.709258" elapsed="0.000019"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-10-15T03:04:49.699949" elapsed="0.009421">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:49.709438" elapsed="0.000040"/>
</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-10-15T03:04:49.640825" elapsed="0.068764">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:49.709845" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:49.709682" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:49.709665" elapsed="0.000270"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:49.710013" 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-10-15T03:04:49.639816" elapsed="0.070297">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:04:49.636022" elapsed="0.074156">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:04:49.635846" elapsed="0.074390">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:04:49.632836" elapsed="0.077488">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:49.632495" elapsed="0.077883">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:04:49.632470" elapsed="0.077938">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:49.710743" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:49.710522" elapsed="0.000278"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:49.710503" elapsed="0.000320"/>
</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-10-15T03:04:49.631142" elapsed="0.079756">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:59.720032" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:59.719197" elapsed="0.000990"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:59.719145" elapsed="0.001098"/>
</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-10-15T03:04:59.723677" 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-10-15T03:04:59.722681" elapsed="0.001057"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.724751" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:04:59.724085" elapsed="0.000719"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:04:59.724904" elapsed="0.000082"/>
</return>
<msg time="2026-10-15T03:04:59.725214" 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-10-15T03:04:59.721701" elapsed="0.003564"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.727374" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:59.726783" elapsed="0.000647"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:04:59.727573" elapsed="0.000061"/>
</return>
<msg time="2026-10-15T03:04:59.727846" 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-10-15T03:04:59.726022" elapsed="0.001875"/>
</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-10-15T03:04:59.766734" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:59.765834" elapsed="0.001053"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:04:59.769797" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:04:59.769113" elapsed="0.000957">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:59.770347" 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-10-15T03:04:59.768388" elapsed="0.002135"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.772902" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:59.771966" elapsed="0.001266"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:04:59.775172" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:04:59.775650" 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-10-15T03:04:59.774754" elapsed="0.001028"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.777907" 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-10-15T03:04:59.777338" elapsed="0.000723"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.779407" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:59.779173" elapsed="0.000290"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.779919" 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-10-15T03:04:59.779655" elapsed="0.000288"/>
</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-10-15T03:04:59.780267" elapsed="0.000020"/>
</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-10-15T03:04:59.780548" 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-10-15T03:04:59.780738" elapsed="0.000019"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:04:59.780137" elapsed="0.000653"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:04:59.780000" elapsed="0.000822"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:04:59.780875" elapsed="0.000038"/>
</return>
<msg time="2026-10-15T03:04:59.781046" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:04:59.778792" elapsed="0.002300"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:59.778269" elapsed="0.002859"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:59.781445" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:59.781183" elapsed="0.000365"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:59.778194" elapsed="0.003406"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.783273" 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-10-15T03:04:59.782589" elapsed="0.000790"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:04:59.783474" elapsed="0.000065"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:04:59.762796" elapsed="0.020913"/>
</kw>
<msg time="2026-10-15T03:04:59.783967" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:04:59.756179" elapsed="0.027838"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:59.788197" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:59.792075" elapsed="0.000025"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:59.795936" elapsed="0.000025"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:59.796149" 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-10-15T03:04:59.796327" elapsed="0.000019"/>
</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-10-15T03:04:59.796736" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:59.796591" elapsed="0.000292"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:59.796577" elapsed="0.000330"/>
</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-10-15T03:04:59.797059" elapsed="0.000019"/>
</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-10-15T03:04:59.797232" elapsed="0.000018"/>
</kw>
<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-10-15T03:04:59.797389" elapsed="0.000018"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:04:59.796549" elapsed="0.000888"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:04:59.796393" 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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:04:59.797644" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:59.797711" elapsed="0.000015"/>
</return>
<msg time="2026-10-15T03:04:59.797817" 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-10-15T03:04:59.755019" elapsed="0.042821"/>
</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-10-15T03:04:59.799110" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:59.798785" elapsed="0.000467">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:59.799490" 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-10-15T03:04:59.798437" elapsed="0.001091"/>
</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-10-15T03:04:59.799808" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:59.799593" elapsed="0.000266"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.800573" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:04:59.800101" elapsed="0.000497"/>
</kw>
<status status="PASS" start="2026-10-15T03:04:59.799881" elapsed="0.000748"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:59.799576" elapsed="0.001073"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.801146" 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-10-15T03:04:59.800803" elapsed="0.000368"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:04:59.801215" elapsed="0.000028"/>
</return>
<msg time="2026-10-15T03:04:59.801339" 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-manganese/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-10-15T03:04:59.798138" elapsed="0.003223"/>
</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-10-15T03:04:59.802649" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:04:59.802255" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:04:59.803004" 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-10-15T03:04:59.801939" elapsed="0.001089"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:04:59.803189" elapsed="0.000024"/>
</return>
<status status="PASS" start="2026-10-15T03:04:59.803093" elapsed="0.000150"/>
</branch>
<status status="PASS" start="2026-10-15T03:04:59.803076" elapsed="0.000189"/>
</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-10-15T03:04:59.803414" elapsed="0.000019"/>
</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-10-15T03:04:59.803667" elapsed="0.000019"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:04:59.803726" elapsed="0.000014"/>
</return>
<msg time="2026-10-15T03:04:59.803848" 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-manganese/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-10-15T03:04:59.801648" elapsed="0.002222"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.805134" 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-10-15T03:04:59.804914" elapsed="0.000261"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:04:59.805801" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:04:59.805360" elapsed="0.000481"/>
</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-10-15T03:04:59.815522" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:04:59.815629" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:04:59.815825" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:59.806126" elapsed="0.010127">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:59.805899" elapsed="0.010437">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:59.816576" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:59.816365" elapsed="0.000271"/>
</branch>
<status status="FAIL" start="2026-10-15T03:04:59.805883" elapsed="0.010774">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:59.817140" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:59.817261" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:04:59.817228" elapsed="0.000070"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:59.817213" elapsed="0.000104"/>
</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-10-15T03:04:59.817480" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:04:59.817558" 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-10-15T03:04:59.804188" elapsed="0.013470">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:59.817722" elapsed="0.000014"/>
</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-10-15T03:04:59.734954" elapsed="0.082853">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:59.818046" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:59.817888" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:59.817873" elapsed="0.000258"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:04:59.818194" 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-10-15T03:04:59.732956" elapsed="0.085330">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:04:59.725688" elapsed="0.092655">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:04:59.725375" elapsed="0.093019">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:04:59.720887" elapsed="0.097614">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:04:59.720356" elapsed="0.098274">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:04:59.720324" elapsed="0.098334">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:04:59.818911" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:04:59.818716" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:04:59.818701" elapsed="0.000282"/>
</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-10-15T03:04:59.718157" elapsed="0.100893">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:05:09.827988" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:09.827271" elapsed="0.000874"/>
</branch>
<status status="PASS" start="2026-10-15T03:05:09.827221" elapsed="0.000983"/>
</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-10-15T03:05:09.831619" 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-10-15T03:05:09.830608" elapsed="0.001075"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.832697" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:05:09.832029" elapsed="0.000722"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:05:09.832850" elapsed="0.000082"/>
</return>
<msg time="2026-10-15T03:05:09.833161" 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-10-15T03:05:09.829658" elapsed="0.003554"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.835319" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:05:09.834724" elapsed="0.000650"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-10-15T03:05:09.835521" elapsed="0.000064"/>
</return>
<msg time="2026-10-15T03:05:09.835801" 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-10-15T03:05:09.833964" elapsed="0.001888"/>
</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-10-15T03:05:09.874967" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/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 variable.</doc>
<status status="PASS" start="2026-10-15T03:05:09.873245" elapsed="0.001957"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-10-15T03:05:09.879391" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/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-10-15T03:05:09.878864" elapsed="0.000756">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules.manganese/location.uri' does not exist.</status>
</kw>
<msg time="2026-10-15T03:05:09.880084" 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-10-15T03:05:09.877677" elapsed="0.002623"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.883292" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:05:09.882150" elapsed="0.002697"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-15T03:05:09.887557" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-10-15T03:05:09.888047" 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-10-15T03:05:09.886775" elapsed="0.001425"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.890898" 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-10-15T03:05:09.890055" elapsed="0.001024"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.893662" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:05:09.893205" elapsed="0.000533"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.894592" 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-10-15T03:05:09.894018" elapsed="0.000612"/>
</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-10-15T03:05:09.895099" elapsed="0.000030"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:09.895422" elapsed="0.000071"/>
</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-10-15T03:05:09.895740" elapsed="0.000029"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-10-15T03:05:09.894906" elapsed="0.000912"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-10-15T03:05:09.894713" elapsed="0.001148"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-10-15T03:05:09.895927" elapsed="0.000060"/>
</return>
<msg time="2026-10-15T03:05:09.896220" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-10-15T03:05:09.892264" elapsed="0.004029"/>
</kw>
<status status="PASS" start="2026-10-15T03:05:09.891394" elapsed="0.004956"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:09.896908" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:09.896444" elapsed="0.000572"/>
</branch>
<status status="PASS" start="2026-10-15T03:05:09.891270" elapsed="0.005827"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.900033" 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-10-15T03:05:09.898694" elapsed="0.001497"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-10-15T03:05:09.900338" elapsed="0.000099"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-10-15T03:05:09.868164" elapsed="0.032607"/>
</kw>
<msg time="2026-10-15T03:05:09.901195" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:05:09.857883" elapsed="0.043403"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:09.908568" elapsed="0.000116"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:09.914969" elapsed="0.000110"/>
</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-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules.manganese/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:09.920468" elapsed="0.000111"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Creates and returns a list containing the given items.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:09.921034" 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-10-15T03:05:09.921238" elapsed="0.000019"/>
</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-10-15T03:05:09.921884" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:09.921710" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:09.921685" elapsed="0.000389"/>
</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-10-15T03:05:09.922238" 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-10-15T03:05:09.922416" 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-10-15T03:05:09.922616" elapsed="0.000019"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-10-15T03:05:09.921630" elapsed="0.001035"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-10-15T03:05:09.921326" elapsed="0.001367"/>
</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>Concatenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:09.922847" elapsed="0.000019"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-10-15T03:05:09.922923" elapsed="0.000020"/>
</return>
<msg time="2026-10-15T03:05:09.923134" 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-10-15T03:05:09.856502" elapsed="0.066661"/>
</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-10-15T03:05:09.924957" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:05:09.924472" elapsed="0.000659">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-10-15T03:05:09.925367" 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-10-15T03:05:09.923997" elapsed="0.001395"/>
</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-10-15T03:05:09.925796" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:09.925522" elapsed="0.000329"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.926625" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:05:09.926117" elapsed="0.000534"/>
</kw>
<status status="PASS" start="2026-10-15T03:05:09.925875" elapsed="0.000809"/>
</branch>
<status status="PASS" start="2026-10-15T03:05:09.925498" elapsed="0.001206"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.927250" 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-10-15T03:05:09.926868" elapsed="0.000408"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-10-15T03:05:09.927331" elapsed="0.000041"/>
</return>
<msg time="2026-10-15T03:05:09.927521" 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-manganese/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-10-15T03:05:09.923605" elapsed="0.003941"/>
</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-10-15T03:05:09.928987" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/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-10-15T03:05:09.928574" elapsed="0.000586">File '/w/workspace/openflowplugin-csit-1node-sanity-only-manganese/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-10-15T03:05:09.929388" 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-10-15T03:05:09.928201" elapsed="0.001212"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-10-15T03:05:09.929720" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-10-15T03:05:09.929608" elapsed="0.000172"/>
</branch>
<status status="PASS" start="2026-10-15T03:05:09.929584" elapsed="0.000220"/>
</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-10-15T03:05:09.929961" elapsed="0.000019"/>
</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-10-15T03:05:09.930254" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-10-15T03:05:09.930315" elapsed="0.000014"/>
</return>
<msg time="2026-10-15T03:05:09.930471" 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-manganese/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-10-15T03:05:09.927852" elapsed="0.002656"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.932108" 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-10-15T03:05:09.931835" elapsed="0.000320"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.932658" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:05:09.932342" elapsed="0.000358"/>
</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-10-15T03:05:09.939270" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 path_url=/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:09.939490" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '405'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/ietf-yang-library:modules-state&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:09.939776" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:05:09.933014" elapsed="0.007266">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:05:09.932770" elapsed="0.007627">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:05:09.940832" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:09.940522" elapsed="0.000375"/>
</branch>
<status status="FAIL" start="2026-10-15T03:05:09.932752" elapsed="0.008169">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:05:09.941623" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-10-15T03:05:09.941780" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:05:09.941735" elapsed="0.000091"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:09.941713" elapsed="0.000133"/>
</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-10-15T03:05:09.941990" elapsed="0.000019"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-10-15T03:05:09.942052" 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-10-15T03:05:09.930868" elapsed="0.011303">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:05:09.942244" elapsed="0.000018"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-10-15T03:05:09.840858" elapsed="0.101484">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:05:09.942671" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:09.942434" elapsed="0.000304"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:09.942415" elapsed="0.000346"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-10-15T03:05:09.942887" 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-10-15T03:05:09.839421" elapsed="0.103564">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-10-15T03:05:09.833635" elapsed="0.109416">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-10-15T03:05:09.833323" elapsed="0.109791">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-10-15T03:05:09.828841" elapsed="0.114368">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<status status="FAIL" start="2026-10-15T03:05:09.828317" elapsed="0.114942">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</branch>
<status status="FAIL" start="2026-10-15T03:05:09.828286" elapsed="0.115004">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:05:09.943595" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:09.943352" elapsed="0.000296"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:09.943337" elapsed="0.000332"/>
</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-10-15T03:05:09.826187" elapsed="0.117555">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<msg time="2026-10-15T03:05:09.943869" level="FAIL">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T02:59:05.528819" elapsed="364.415170">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:05:09.945952" 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-10-15T03:05:09.945402" elapsed="0.000576"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.946431" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Creates and returns a list containing the given items.</doc>
<status status="PASS" start="2026-10-15T03:05:09.946133" elapsed="0.000360"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-10-15T03:05:09.946542" elapsed="0.000039"/>
</return>
<msg time="2026-10-15T03:05:09.946687" 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-10-15T03:05:09.944977" elapsed="0.001733"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-10-15T03:05:09.947746" level="INFO">${member_ip} = 10.30.171.74</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-10-15T03:05:09.947508" elapsed="0.000263"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T03:05:09.948655" level="INFO">index=20
host=10.30.171.55
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-10-15T03:05:09.948754" level="INFO">${current_connection} = index=20
host=10.30.171.55
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-10-15T03:05:09.948491" elapsed="0.000289"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:09.951950" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:09.951586" elapsed="0.000431"/>
</branch>
<status status="PASS" start="2026-10-15T03:05:09.951135" elapsed="0.000909"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T03:05:09.952393" level="INFO">index=20
host=10.30.171.55
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-10-15T03:05:09.952534" level="INFO">${current_ssh_connection} = index=20
host=10.30.171.55
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-10-15T03:05:09.952241" elapsed="0.000425"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.953184" level="INFO">Attempting to execute command "netstat -pnatu | grep 2550" on remote system "10.30.171.74" 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-10-15T03:05:09.952859" elapsed="0.000370"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T03:05:09.953933" level="INFO">${conn_id} = 32</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-10-15T03:05:09.953523" elapsed="0.000436"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T03:05:09.955412" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T03:05:09.955587" 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-10-15T03:05:09.954629" elapsed="0.000996"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:05:09.955865" elapsed="0.000735"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T03:05:09.958979" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T03:05:10.631249" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 03:05:10 UTC 2026

  System load:  0.02               Processes:             119
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 8%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 02:59:05 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T03:05:09.958403" elapsed="0.673320"/>
</kw>
<msg time="2026-10-15T03:05:10.631868" 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-10-15T03:05:09.956881" elapsed="0.675152"/>
</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-10-15T03:05:09.954178" elapsed="0.678124"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T03:05:10.633108" level="INFO">Executing command 'netstat -pnatu | grep 2550'.</msg>
<msg time="2026-10-15T03:05:10.645740" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-15T03:05:10.646076" level="INFO">${stdout} = </msg>
<msg time="2026-10-15T03:05:10.646118" 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-10-15T03:05:10.632744" elapsed="0.013399"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T03:05:10.646573" elapsed="0.000424"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:05:10.647764" 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-10-15T03:05:10.647337" elapsed="0.000470"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T03:05:10.648109" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:05:10.647926" elapsed="0.000240"/>
</branch>
<status status="PASS" start="2026-10-15T03:05:10.647886" elapsed="0.000304"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T03:05:10.648324" elapsed="0.000048"/>
</return>
<status status="PASS" start="2026-10-15T03:05:10.648241" elapsed="0.000164"/>
</branch>
<status status="PASS" start="2026-10-15T03:05:10.648226" elapsed="0.000202"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T03:05:10.648489" elapsed="0.000015"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-10-15T03:05:10.651499" elapsed="0.000374"/>
</kw>
<msg time="2026-10-15T03:05:10.651960" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:05:10.649514" elapsed="0.002577"/>
</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-10-15T03:05:10.652324" elapsed="0.000021"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.652532" 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-10-15T03:05:10.648867" elapsed="0.003757"/>
</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-10-15T03:05:09.950681" elapsed="0.702026"/>
</kw>
<msg time="2026-10-15T03:05:10.652855" 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-10-15T03:05:09.949929" elapsed="0.702985"/>
</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-10-15T03:05:09.949428" elapsed="0.703562"/>
</kw>
<msg time="2026-10-15T03:05:10.653029" 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-10-15T03:05:09.948941" elapsed="0.704143"/>
</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-10-15T03:05:10.655568" elapsed="0.000149"/>
</kw>
<msg time="2026-10-15T03:05:10.655772" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:05:10.654898" elapsed="0.000941"/>
</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-10-15T03:05:10.656022" elapsed="0.000021"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.656178" 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-10-15T03:05:10.653576" elapsed="0.002681"/>
</kw>
<msg time="2026-10-15T03:05:10.656357" 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-10-15T03:05:09.947991" elapsed="0.708392"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:05:10.657081" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:05:10.656809" elapsed="0.000314"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T03:05:10.657177" elapsed="0.000044"/>
</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-10-15T03:05:09.947072" elapsed="0.710237"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-10-15T03:05:09.946899" elapsed="0.710447"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-10-15T03:05:09.946769" elapsed="0.710626"/>
</for>
<arg>command=netstat -pnatu | grep 2550</arg>
<doc>Cycle through indices (or all), run command on each.</doc>
<status status="PASS" start="2026-10-15T03:05:09.944297" elapsed="0.713210"/>
</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-10-15T02:59:05.106928" elapsed="365.550692">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</status>
</kw>
<doc>Stop and Start controller.</doc>
<status status="FAIL" start="2026-10-15T02:58:55.879699" elapsed="374.778120">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/ietf-yang-library:modules-state?content=nonconfig</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-10-15T03:05:10.666718" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:10.666838" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:10.667032" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:10.660131" elapsed="0.007551">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.668209" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.668846" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.669050" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.669241" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.669574" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.669770" elapsed="0.000018"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.669982" elapsed="0.000018"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.670275" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:10.670092" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:10.670067" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.670642" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:10.670409" elapsed="0.000285"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:10.670394" elapsed="0.000321"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:10.670933" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:10.670763" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:10.670749" elapsed="0.000255"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:10.668631" elapsed="0.002395"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:10.668320" elapsed="0.002736"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:10.659777" elapsed="0.011435">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:12.681056" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:12.681194" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:12.681503" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:12.674047" elapsed="0.008504">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.683259" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.684317" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.684807" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.685231" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.685697" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.686122" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.686612" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.687205" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:12.686817" elapsed="0.000495"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:12.686773" elapsed="0.000592"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.687897" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:12.687520" elapsed="0.000487"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:12.687441" elapsed="0.000613"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:12.688765" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:12.688155" elapsed="0.000874"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:12.688125" elapsed="0.000954"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:12.683892" elapsed="0.005234"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:12.683429" elapsed="0.005748"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:12.672914" elapsed="0.016474">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:14.699881" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:14.700017" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:14.700276" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:14.692902" elapsed="0.008418">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:14.702082" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:14.703056" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:14.703549" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:14.703994" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:14.704422" elapsed="0.000082"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:14.704903" 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-10-15T03:05:14.705358" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:14.706006" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:14.705598" elapsed="0.000519"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:14.705556" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:14.706695" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:14.706275" elapsed="0.000533"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:14.706245" elapsed="0.000611"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:14.707367" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:14.706960" elapsed="0.000569"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:14.706930" elapsed="0.000650"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:14.702671" elapsed="0.004958"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:14.702240" elapsed="0.005441"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:14.691870" elapsed="0.016013">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:16.718227" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:16.718375" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:16.718855" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:16.710970" elapsed="0.008952">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:16.720679" elapsed="0.000053"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:16.721679" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:16.722133" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:16.722609" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:16.723043" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:16.723508" 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-10-15T03:05:16.723968" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:16.724654" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:16.724199" elapsed="0.000570"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:16.724157" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:16.725315" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:16.724936" elapsed="0.000487"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:16.724905" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:16.726001" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:16.725622" elapsed="0.000487"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:16.725591" elapsed="0.000564"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:16.721240" elapsed="0.004959"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:16.720846" elapsed="0.005406"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:16.709680" elapsed="0.016841">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:18.733298" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:18.733395" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:18.733609" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:18.728347" elapsed="0.006444">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:18.735382" elapsed="0.000027"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:18.735947" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:18.736196" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:18.736476" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:18.736695" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:18.736921" 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-10-15T03:05:18.737507" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:18.737871" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:18.737646" elapsed="0.000282"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:18.737621" elapsed="0.000344"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:18.738216" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:18.738033" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:18.738017" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:18.738576" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:18.738341" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:18.738326" elapsed="0.000355"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:18.735748" elapsed="0.002966"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:18.735511" elapsed="0.003235"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:18.727720" elapsed="0.011144">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:20.748808" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:20.748958" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:20.749239" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:20.741648" elapsed="0.008744">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:20.751178" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:20.752518" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:20.753024" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:20.753509" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:20.754080" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:20.754638" 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-10-15T03:05:20.755168" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:20.755850" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:20.755394" elapsed="0.000576"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:20.755346" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:20.756696" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:20.756148" elapsed="0.000710"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:20.756116" elapsed="0.000808"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:20.757561" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:20.757073" elapsed="0.000609"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:20.757028" elapsed="0.000707"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:20.751942" elapsed="0.005839"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:20.751352" elapsed="0.006486"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:20.740493" elapsed="0.017570">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:22.768957" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:22.769103" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:22.769408" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:22.760799" elapsed="0.009750">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.771297" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.772279" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.772829" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.773299" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.773786" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.774222" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.774759" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.776044" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:22.775564" elapsed="0.000615"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:22.774969" elapsed="0.001268"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.776800" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:22.776353" elapsed="0.000572"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:22.776321" elapsed="0.000652"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:22.777555" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:22.777121" elapsed="0.000554"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:22.777087" elapsed="0.000635"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:22.771897" elapsed="0.005884"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:22.771514" elapsed="0.006346"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:22.759795" elapsed="0.018290">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:24.787660" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:24.787798" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:24.788050" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:24.780760" elapsed="0.008371">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:24.790066" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:24.791037" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:24.791514" elapsed="0.000648"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:24.792633" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:24.793060" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:24.793518" 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-10-15T03:05:24.793963" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:24.794579" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:24.794156" elapsed="0.000532"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:24.794115" elapsed="0.000627"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:24.795220" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:24.794851" elapsed="0.000475"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:24.794821" elapsed="0.000550"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:24.795886" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:24.795517" elapsed="0.000474"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:24.795484" elapsed="0.000553"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:24.790648" elapsed="0.005433"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:24.790228" elapsed="0.005905"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:24.779656" elapsed="0.016690">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:26.805868" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:26.806005" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:26.806262" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:26.799126" elapsed="0.008171">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:26.808021" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:26.809006" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:26.809493" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:26.809926" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:26.810351" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:26.810824" 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-10-15T03:05:26.811270" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:26.811902" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:26.811509" elapsed="0.000631"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:26.811442" elapsed="0.000757"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:26.812742" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:26.812312" elapsed="0.000543"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:26.812281" elapsed="0.000621"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:26.813380" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:26.813008" elapsed="0.000527"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:26.812978" elapsed="0.000604"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:26.808617" elapsed="0.005011"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:26.808183" elapsed="0.005499"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:26.798001" elapsed="0.015893">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:28.824184" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:28.824325" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:28.824656" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:28.816587" elapsed="0.009139">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.826394" elapsed="0.000094"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.827382" elapsed="0.000092"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.827877" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.828306" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.828780" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.829212" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.829706" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.830296" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:28.829905" elapsed="0.000498"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:28.829864" elapsed="0.000644"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.830995" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:28.830621" elapsed="0.000480"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:28.830589" elapsed="0.000558"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:28.831818" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:28.831249" elapsed="0.000680"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:28.831220" elapsed="0.000755"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:28.826999" elapsed="0.005020"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:28.826603" elapsed="0.005469"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:28.815512" elapsed="0.016775">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:30.842027" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:30.842321" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:30.842635" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:30.835192" elapsed="0.008495">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.844358" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.845507" elapsed="0.000059"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.845979" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.846422" elapsed="0.000068"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.846878" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.847295" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.847794" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.848377" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:30.847994" elapsed="0.000542"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:30.847953" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.849077" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:30.848701" elapsed="0.000483"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:30.848670" elapsed="0.000560"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:30.849751" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:30.849331" elapsed="0.000531"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:30.849301" elapsed="0.000608"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:30.844950" elapsed="0.005004"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:30.844569" elapsed="0.005438"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:30.833938" elapsed="0.016288">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:32.860703" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:32.860842" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:32.861105" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:32.853130" elapsed="0.009225">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:32.863091" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:32.864761" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:32.865248" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:32.865899" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:32.866345" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:32.866904" 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-10-15T03:05:32.867422" elapsed="0.000086"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:32.868201" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:32.867725" elapsed="0.000598"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:32.867669" elapsed="0.000715"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:32.869079" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:32.868581" elapsed="0.000661"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:32.868545" elapsed="0.000749"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:32.869972" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:32.869485" elapsed="0.000627"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:32.869375" elapsed="0.000812"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:32.864282" elapsed="0.005963"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:32.863253" elapsed="0.007052"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:32.851893" elapsed="0.018723">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:34.879870" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:34.879995" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:34.880247" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:34.873016" elapsed="0.008157">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:34.881873" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:34.882812" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:34.883258" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:34.883737" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:34.884165" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:34.884639" 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-10-15T03:05:34.885082" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:34.885700" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:34.885264" elapsed="0.000548"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:34.885228" elapsed="0.000636"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:34.886350" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:34.885973" elapsed="0.000537"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:34.885942" elapsed="0.000713"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:34.887158" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:34.886774" elapsed="0.000495"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:34.886741" elapsed="0.000575"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:34.882383" elapsed="0.004979"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:34.882025" elapsed="0.005416"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:34.872106" elapsed="0.015558">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:36.896871" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:36.896991" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:36.897205" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:36.889757" elapsed="0.008356">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:36.898744" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:36.899667" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:36.900107" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:36.900586" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:36.901153" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:36.901625" 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-10-15T03:05:36.902073" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:36.902696" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:36.902255" elapsed="0.000552"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:36.902219" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:36.903339" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:36.902967" elapsed="0.000528"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:36.902935" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:36.904025" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:36.903652" elapsed="0.000482"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:36.903621" elapsed="0.000560"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:36.899248" elapsed="0.004977"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:36.898896" elapsed="0.005379"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:36.888893" elapsed="0.015619">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:38.914359" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:38.914601" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:38.915023" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:38.907252" elapsed="0.008851">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:38.916891" elapsed="0.000074"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:38.918147" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:38.918837" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:38.919499" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:38.920105" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:38.920762" 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-10-15T03:05:38.921403" elapsed="0.000092"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:38.922227" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:38.921693" elapsed="0.000708"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:38.921644" elapsed="0.000863"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:38.923167" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:38.922662" elapsed="0.000626"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:38.922620" elapsed="0.000716"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:38.923940" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:38.923551" elapsed="0.000501"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:38.923504" elapsed="0.000598"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:38.917616" elapsed="0.006532"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:38.917107" elapsed="0.007109"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:38.906325" elapsed="0.018170">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:40.933694" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:40.933817" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:40.934033" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:40.926649" elapsed="0.008321">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.935612" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.936614" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.937073" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.937543" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.937966" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.938424" elapsed="0.000066"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.939018" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.939645" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:40.939205" elapsed="0.000550"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:40.939169" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.940359" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:40.939910" elapsed="0.000622"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:40.939880" elapsed="0.000703"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:40.941059" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:40.940688" elapsed="0.000477"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:40.940658" elapsed="0.000552"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:40.936179" elapsed="0.005076"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:40.935804" elapsed="0.005502"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:40.925774" elapsed="0.015770">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:42.954177" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:42.954325" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:42.954653" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:42.943635" elapsed="0.011991">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:42.956271" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:42.957033" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:42.957308" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:42.957611" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:42.957879" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:42.958145" 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-10-15T03:05:42.958435" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:42.958810" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:42.958571" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:42.958547" elapsed="0.000363"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:42.959212" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:42.958978" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:42.958959" elapsed="0.000351"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:42.959649" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:42.959395" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:42.959357" elapsed="0.000391"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:42.956798" elapsed="0.002979"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:42.956484" elapsed="0.003325"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:42.942785" elapsed="0.017147">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:44.968429" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:44.968583" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:44.968793" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:44.962060" elapsed="0.007625">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.970258" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.971176" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.971659" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.972084" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.972551" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.972975" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.973432" elapsed="0.000065"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.974017" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:44.973638" elapsed="0.000485"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:44.973604" elapsed="0.000568"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.974700" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:44.974278" elapsed="0.000531"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:44.974248" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:44.975329" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:44.974958" elapsed="0.000522"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:44.974929" elapsed="0.000598"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:44.970805" elapsed="0.004767"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:44.970424" elapsed="0.005198"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:44.961202" elapsed="0.014606">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:46.984884" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:46.985007" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:46.985222" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:46.977898" elapsed="0.008227">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:46.986855" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:46.987781" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:46.988219" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:46.988694" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:46.989116" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:46.989585" 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-10-15T03:05:46.990024" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:46.990637" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:46.990208" elapsed="0.000539"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:46.990173" elapsed="0.000626"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:46.991750" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:46.990906" elapsed="0.000961"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:46.990875" elapsed="0.001040"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:46.992423" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:46.992023" elapsed="0.000540"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:46.991992" elapsed="0.000617"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:46.987377" elapsed="0.005277"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:46.987006" elapsed="0.005698"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:46.977028" elapsed="0.015866">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:49.001725" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:49.001845" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:49.002053" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:48.994936" elapsed="0.008010">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.003569" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.004488" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.004932" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.005373" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.005829" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.006253" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.006746" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.007304" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:49.006925" elapsed="0.000627"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:49.006890" elapsed="0.000715"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.008091" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:49.007715" elapsed="0.000483"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:49.007684" elapsed="0.000561"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:49.008771" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:49.008372" elapsed="0.000509"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:49.008320" elapsed="0.000607"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:49.004069" elapsed="0.004904"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:49.003717" elapsed="0.005308"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:48.994093" elapsed="0.015118">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:51.020111" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:51.020248" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:51.020551" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:51.011493" elapsed="0.010094">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.022259" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.023362" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.023902" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.024562" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.025272" elapsed="0.000119"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.025962" elapsed="0.000053"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.026556" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.027231" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:51.026769" elapsed="0.000615"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:51.026727" elapsed="0.000718"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.028117" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:51.027601" elapsed="0.000648"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:51.027563" elapsed="0.000741"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:51.028954" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:51.028497" elapsed="0.000598"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:51.028418" elapsed="0.000740"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:51.022898" elapsed="0.006309"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:51.022491" elapsed="0.006770"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:51.010545" elapsed="0.018983">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:53.038913" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:53.039147" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:53.039418" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:53.031781" elapsed="0.008725">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.041100" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.042073" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.042570" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.043008" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.043476" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.043902" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.044364" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.044966" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:53.044579" elapsed="0.000496"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:53.044541" elapsed="0.000586"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.045656" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:53.045234" elapsed="0.000533"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:53.045204" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:53.046292" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:53.045919" elapsed="0.000503"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:53.045889" elapsed="0.000607"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:53.041669" elapsed="0.004875"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:53.041252" elapsed="0.005343"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:53.030855" elapsed="0.015939">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:55.055826" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:55.055959" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:55.056185" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:55.048851" elapsed="0.008237">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:55.057781" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:55.058730" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:55.059174" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:55.059751" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:55.060178" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:55.060646" 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-10-15T03:05:55.061088" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:55.061703" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:55.061272" elapsed="0.000544"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:55.061236" elapsed="0.000630"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:55.062397" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:55.061999" elapsed="0.000535"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:55.061942" elapsed="0.000639"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:55.063081" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:55.062686" elapsed="0.000506"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:55.062655" elapsed="0.000585"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:55.058305" elapsed="0.004981"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:55.057937" elapsed="0.005420"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:55.047970" elapsed="0.015641">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:57.072254" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:57.072403" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:57.072685" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:57.065770" elapsed="0.007858">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:57.074249" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:57.075203" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:57.075701" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:57.076136" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:57.076616" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:57.077050" 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-10-15T03:05:57.077542" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:57.078636" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:57.078175" elapsed="0.000579"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:57.077695" elapsed="0.001114"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:57.079364" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:57.078924" elapsed="0.000587"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:57.078891" elapsed="0.000758"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:57.080160" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:57.079769" elapsed="0.000503"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:57.079736" elapsed="0.000606"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:57.074826" elapsed="0.005567"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:57.074428" elapsed="0.006018"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:57.064880" elapsed="0.015791">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:05:59.091306" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:05:59.091532" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:05:59.091782" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:05:59.083223" elapsed="0.009604">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:59.093601" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:59.094760" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:59.095264" elapsed="0.000107"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:59.095946" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:59.096519" elapsed="0.000059"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:59.097057" 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-10-15T03:05:59.097688" elapsed="0.000059"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:59.098381" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:59.097921" elapsed="0.000644"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:59.097879" elapsed="0.000762"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:59.099211" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:59.098794" elapsed="0.000594"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:59.098752" elapsed="0.000691"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:05:59.100049" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:05:59.099594" elapsed="0.000581"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:05:59.099559" elapsed="0.000668"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:05:59.094199" elapsed="0.006078"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:05:59.093807" elapsed="0.006554"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:59.082132" elapsed="0.018473">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:01.109418" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:01.109582" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:01.109911" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:01.102812" elapsed="0.008047">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:01.111511" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:01.112422" elapsed="0.000074"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:01.112893" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:01.113343" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:01.113801" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:01.114223" 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-10-15T03:06:01.114723" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:01.115293" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:01.114910" elapsed="0.000513"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:01.114873" elapsed="0.000631"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:01.115992" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:01.115616" elapsed="0.000485"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:01.115584" elapsed="0.000564"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:01.116676" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:01.116251" elapsed="0.000537"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:01.116221" elapsed="0.000614"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:01.112025" elapsed="0.004854"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:01.111665" elapsed="0.005265"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:01.101910" elapsed="0.015273">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:03.127974" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:03.128104" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:03.128389" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:03.119540" elapsed="0.009835">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.130221" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.131230" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.131756" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.132214" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.132822" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.133251" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.133852" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.134478" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:03.134044" elapsed="0.000547"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:03.134007" elapsed="0.000636"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.135126" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:03.134752" elapsed="0.000480"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:03.134722" elapsed="0.000558"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:03.135957" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:03.135410" elapsed="0.000655"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:03.135379" elapsed="0.000732"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:03.130824" elapsed="0.005333"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:03.130407" elapsed="0.005802"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:03.118501" elapsed="0.017924">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:05.145709" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:05.145870" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:05.146179" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:05.138765" elapsed="0.008409">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.147857" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.148816" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.149338" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.149907" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.150444" elapsed="0.000084"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.150988" elapsed="0.000052"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.151573" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.152247" elapsed="0.000091"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:05.151778" elapsed="0.000665"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:05.151737" elapsed="0.000811"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.153110" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:05.152667" elapsed="0.000584"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:05.152632" elapsed="0.000700"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:05.153926" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:05.153474" elapsed="0.000579"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:05.153414" elapsed="0.000689"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:05.148404" elapsed="0.005744"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:05.148010" elapsed="0.006189"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:05.137842" elapsed="0.016588">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:07.164541" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:07.164673" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:07.164928" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:07.156826" elapsed="0.009111">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:07.166629" elapsed="0.000053"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:07.168485" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:07.168951" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:07.169410" elapsed="0.000070"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:07.169875" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:07.170328" 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-10-15T03:06:07.170807" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:07.171407" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:07.171001" elapsed="0.000543"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:07.170961" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:07.172084" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:07.171707" elapsed="0.000485"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:07.171676" elapsed="0.000562"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:07.172766" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:07.172365" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:07.172334" elapsed="0.000587"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:07.168010" elapsed="0.004957"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:07.166807" elapsed="0.006210"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:07.155911" elapsed="0.017321">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:09.182785" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:09.182919" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:09.183155" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:09.175695" elapsed="0.008562">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.185152" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.186273" elapsed="0.000088"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.186886" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.187375" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.187931" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.188484" elapsed="0.000057"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.188992" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.189736" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:09.189181" elapsed="0.000691"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:09.189143" elapsed="0.000784"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.190521" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:09.190039" elapsed="0.000627"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:09.190008" elapsed="0.000715"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:09.191207" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:09.190830" elapsed="0.000526"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:09.190799" elapsed="0.000619"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:09.185883" elapsed="0.005631"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:09.185358" elapsed="0.006226"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:09.174679" elapsed="0.017137">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:11.200267" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:11.200496" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:11.200767" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:11.194062" elapsed="0.007804">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:11.202609" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:11.203694" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:11.204150" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:11.204728" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:11.205180" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:11.205799" 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-10-15T03:06:11.206311" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:11.207011" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:11.206594" elapsed="0.000636"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:11.206541" elapsed="0.000768"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:11.207855" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:11.207426" elapsed="0.000543"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:11.207394" elapsed="0.000623"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:11.208561" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:11.208123" elapsed="0.000559"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:11.208092" elapsed="0.000641"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:11.203160" elapsed="0.005622"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:11.202797" elapsed="0.006042"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:11.193145" elapsed="0.015906">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:13.215918" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:13.215982" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:13.216108" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:13.210623" elapsed="0.005966">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:13.216905" elapsed="0.000024"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:13.217355" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:13.217586" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:13.217913" elapsed="0.000018"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:13.218102" elapsed="0.000017"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:13.218302" 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-10-15T03:06:13.218518" elapsed="0.000019"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:13.218786" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:13.218609" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:13.218591" elapsed="0.000269"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:13.219092" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:13.218909" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:13.218896" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:13.219387" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:13.219207" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:13.219193" elapsed="0.000284"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:13.217165" elapsed="0.002333"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:13.216980" elapsed="0.002542"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:13.210164" elapsed="0.009462">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:15.227506" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:15.227674" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:15.227854" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:15.221722" elapsed="0.006949">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:15.229076" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:15.229573" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:15.229791" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:15.230027" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:15.230384" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:15.230674" 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-10-15T03:06:15.230888" elapsed="0.000019"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:15.231159" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:15.230981" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:15.230963" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:15.231492" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:15.231301" elapsed="0.000243"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:15.231286" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:15.231806" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:15.231625" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:15.231610" elapsed="0.000272"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:15.229372" elapsed="0.002531"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:15.229165" elapsed="0.002762"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:15.220845" elapsed="0.011186">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:17.241506" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:17.241638" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:17.241882" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:17.234349" elapsed="0.008468">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.243542" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.244498" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.244954" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.245537" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.245979" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.246425" elapsed="0.000069"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.246902" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.247543" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:17.247092" elapsed="0.000566"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:17.247053" elapsed="0.000657"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.248195" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:17.247820" elapsed="0.000504"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:17.247789" elapsed="0.000582"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:17.248897" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:17.248504" elapsed="0.000502"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:17.248445" elapsed="0.000608"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:17.244069" elapsed="0.005029"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:17.243707" elapsed="0.005442"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:17.233373" elapsed="0.015997">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:19.258290" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:19.258426" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:19.258763" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:19.251759" elapsed="0.008144">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:19.260623" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:19.261658" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:19.262148" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:19.262656" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:19.263129" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:19.263633" 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-10-15T03:06:19.264139" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:19.265012" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:19.264546" elapsed="0.000624"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:19.264441" elapsed="0.000789"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:19.265819" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:19.265390" elapsed="0.000546"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:19.265355" elapsed="0.000756"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:19.266707" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:19.266243" elapsed="0.000582"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:19.266209" elapsed="0.000667"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:19.261195" elapsed="0.005730"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:19.260804" elapsed="0.006176"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:19.250792" elapsed="0.016414">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:21.275095" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:21.275183" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:21.275365" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:21.269356" elapsed="0.006642">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:21.276444" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:21.277145" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:21.277544" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:21.277852" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:21.278717" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:21.279162" 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-10-15T03:06:21.279669" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:21.280260" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:21.279858" elapsed="0.000511"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:21.279821" elapsed="0.000600"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:21.280986" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:21.280557" elapsed="0.000547"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:21.280526" elapsed="0.000625"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:21.281766" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:21.281285" elapsed="0.000603"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:21.281226" elapsed="0.000709"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:21.276856" elapsed="0.005123"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:21.276569" elapsed="0.005464"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:21.268557" elapsed="0.013672">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:23.291298" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:23.291424" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:23.291801" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:23.284566" elapsed="0.008207">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:23.293482" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:23.294439" elapsed="0.000076"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:23.294933" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:23.295421" elapsed="0.000084"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:23.295899" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:23.296399" 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-10-15T03:06:23.296881" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:23.297542" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:23.297069" elapsed="0.000591"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:23.297031" elapsed="0.000682"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:23.298265" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:23.297820" elapsed="0.000615"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:23.297791" elapsed="0.000749"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:23.299042" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:23.298660" elapsed="0.000493"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:23.298627" elapsed="0.000573"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:23.294012" elapsed="0.005401"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:23.293643" elapsed="0.005889"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:23.283617" elapsed="0.016132">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:25.308107" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:25.308257" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:25.308515" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:25.301920" elapsed="0.007468">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:25.310016" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:25.310952" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:25.311419" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:25.311887" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:25.312336" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:25.312791" 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-10-15T03:06:25.313346" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:25.313947" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:25.313563" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:25.313526" elapsed="0.000608"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:25.314691" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:25.314269" elapsed="0.000534"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:25.314211" elapsed="0.000639"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:25.315359" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:25.314953" elapsed="0.000545"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:25.314923" elapsed="0.000624"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:25.310567" elapsed="0.005025"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:25.310162" elapsed="0.005480"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:25.301041" elapsed="0.014789">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:27.325108" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:27.325267" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:27.325536" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:27.318668" elapsed="0.007740">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:27.327022" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:27.327974" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:27.328445" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:27.328909" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:27.329425" elapsed="0.000089"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:27.329959" 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-10-15T03:06:27.330520" elapsed="0.000050"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:27.331103" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:27.330720" elapsed="0.000491"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:27.330682" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:27.331793" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:27.331392" elapsed="0.000511"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:27.331361" elapsed="0.000588"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:27.332479" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:27.332050" elapsed="0.000542"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:27.332021" elapsed="0.000617"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:27.327599" elapsed="0.005083"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:27.327196" elapsed="0.005536"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:27.317703" elapsed="0.015216">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:29.341315" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:29.341445" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:29.341723" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:29.335255" elapsed="0.007459">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.343386" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.344393" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.344893" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.345350" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.345800" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.346247" elapsed="0.000053"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.346744" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.347382" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:29.346944" elapsed="0.000611"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:29.346906" elapsed="0.000718"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.348161" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:29.347769" elapsed="0.000537"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:29.347727" elapsed="0.000626"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:29.348854" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:29.348483" elapsed="0.000476"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:29.348426" elapsed="0.000579"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:29.343973" elapsed="0.005075"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:29.343577" elapsed="0.005520"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:29.334319" elapsed="0.014990">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:31.355896" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:31.355979" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:31.356488" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:31.350916" elapsed="0.006158">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.357568" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.358167" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.358522" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.358835" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.359108" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.359409" elapsed="0.000026"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.359711" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.360073" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:31.359830" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:31.359805" elapsed="0.000370"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.360523" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:31.360265" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:31.360245" elapsed="0.000378"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:31.360924" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:31.360690" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:31.360670" elapsed="0.000354"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:31.357923" elapsed="0.003143"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:31.357669" elapsed="0.003437"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:31.350267" elapsed="0.011002">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:33.369645" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:33.369770" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:33.369996" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:33.363384" elapsed="0.007578">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:33.371627" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:33.372587" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:33.373025" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:33.373491" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:33.373917" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:33.374353" 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-10-15T03:06:33.374851" elapsed="0.000050"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:33.375442" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:33.375043" elapsed="0.000625"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:33.375006" elapsed="0.000716"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:33.376230" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:33.375832" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:33.375801" elapsed="0.000585"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:33.376891" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:33.376519" elapsed="0.000478"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:33.376487" elapsed="0.000556"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:33.372162" elapsed="0.004924"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:33.371783" elapsed="0.005356"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:33.362521" elapsed="0.014838">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:35.385769" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:35.385892" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:35.386113" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:35.379621" elapsed="0.007420">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:35.387737" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:35.388690" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:35.389132" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:35.389612" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:35.390048" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:35.390520" 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-10-15T03:06:35.390967" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:35.392004" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:35.391596" elapsed="0.000520"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:35.391124" elapsed="0.001045"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:35.392719" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:35.392308" elapsed="0.000522"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:35.392275" elapsed="0.000602"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:35.393381" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:35.392982" elapsed="0.000537"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:35.392952" elapsed="0.000616"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:35.388285" elapsed="0.005328"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:35.387889" elapsed="0.005776"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:35.378691" elapsed="0.015168">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:37.403087" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:37.403338" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:37.403594" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:37.396587" elapsed="0.007991">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.405217" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.406134" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.406629" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.407102" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.407596" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.408024" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.408546" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.409153" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:37.408759" elapsed="0.000541"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:37.408717" elapsed="0.000634"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.409864" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:37.409484" elapsed="0.000489"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:37.409427" elapsed="0.000592"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:37.410538" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:37.410120" elapsed="0.000529"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:37.410091" elapsed="0.000615"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:37.405757" elapsed="0.004994"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:37.405371" elapsed="0.005430"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:37.395570" elapsed="0.015442">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:39.419747" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:39.419869" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:39.420082" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:39.413175" elapsed="0.007812">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:39.421633" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:39.422579" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:39.423036" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:39.423608" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:39.424040" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:39.424516" 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-10-15T03:06:39.424960" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:39.425576" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:39.425140" elapsed="0.000547"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:39.425105" elapsed="0.000633"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:39.426257" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:39.425847" elapsed="0.000570"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:39.425816" elapsed="0.000693"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:39.426998" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:39.426619" elapsed="0.000489"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:39.426588" elapsed="0.000567"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:39.422139" elapsed="0.005082"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:39.421782" elapsed="0.005492"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:39.412297" elapsed="0.015195">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:41.439235" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:41.439368" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:41.439645" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:41.432789" elapsed="0.007823">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.441233" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.442162" elapsed="0.000068"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.442656" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.443081" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.443550" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.443974" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.444430" elapsed="0.000069"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.445033" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:41.444645" elapsed="0.000496"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:41.444607" elapsed="0.000609"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.445741" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:41.445328" elapsed="0.000521"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:41.445297" elapsed="0.000684"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:41.446530" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:41.446094" elapsed="0.000549"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:41.446063" elapsed="0.000627"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:41.441784" elapsed="0.004951"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:41.441385" elapsed="0.005401"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:41.428821" elapsed="0.018158">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:43.457356" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:43.457526" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:43.457751" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:43.450552" elapsed="0.008135">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.459295" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.460239" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.460718" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.461147" elapsed="0.000061"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.461628" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.462057" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.462546" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.463110" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:43.462730" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:43.462694" elapsed="0.000600"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.463806" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:43.463402" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:43.463371" elapsed="0.000593"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:43.464495" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:43.464069" elapsed="0.000540"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:43.464037" elapsed="0.000620"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:43.459844" elapsed="0.004858"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:43.459445" elapsed="0.005307"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:43.449287" elapsed="0.015653">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:45.474435" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:45.474606" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:45.474938" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:45.467132" elapsed="0.008730">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:45.476527" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:45.477945" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:45.478425" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:45.478894" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:45.479343" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:45.479798" 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-10-15T03:06:45.480259" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:45.480862" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:45.480473" elapsed="0.000498"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:45.480409" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:45.481551" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:45.481128" elapsed="0.000535"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:45.481098" elapsed="0.000612"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:45.482207" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:45.481813" elapsed="0.000503"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:45.481783" elapsed="0.000578"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:45.477546" elapsed="0.004860"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:45.476684" elapsed="0.005801"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:45.466252" elapsed="0.016435">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:47.491643" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:47.491770" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:47.491998" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:47.485226" elapsed="0.007760">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.493667" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.494623" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.495064" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.495551" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.495976" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.496416" elapsed="0.000068"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.497000" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.497639" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:47.497218" elapsed="0.000534"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:47.497153" elapsed="0.000653"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.498313" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:47.497914" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:47.497883" elapsed="0.000618"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:47.498982" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:47.498609" elapsed="0.000482"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:47.498578" elapsed="0.000559"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:47.494214" elapsed="0.004994"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:47.493824" elapsed="0.005437"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:47.484248" elapsed="0.015240">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:49.508584" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:49.508716" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:49.508954" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:49.501789" elapsed="0.008151">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:49.510626" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:49.511655" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:49.512125" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:49.512639" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:49.513095" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:49.513605" 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-10-15T03:06:49.514083" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:49.514742" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:49.514301" elapsed="0.000558"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:49.514261" elapsed="0.000653"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:49.515477" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:49.515027" elapsed="0.000571"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:49.514995" elapsed="0.000652"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:49.516256" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:49.515815" elapsed="0.000564"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:49.515766" elapsed="0.000666"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:49.511219" elapsed="0.005295"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:49.510802" elapsed="0.005768"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:49.500847" elapsed="0.015930">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:51.528432" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:51.528594" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:51.528854" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:51.520551" elapsed="0.009289">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.530480" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.531409" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.531882" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.532329" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.532782" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.533221" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.533687" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.534300" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:51.533871" elapsed="0.000539"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:51.533834" elapsed="0.000656"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.534985" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:51.534603" elapsed="0.000488"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:51.534571" elapsed="0.000566"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:51.535664" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:51.535265" elapsed="0.000507"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:51.535234" elapsed="0.000584"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:51.531012" elapsed="0.004851"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:51.530651" elapsed="0.005264"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:51.519613" elapsed="0.016493">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:53.544269" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:53.544395" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:53.544660" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:53.538306" elapsed="0.007294">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:53.546376" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:53.547340" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:53.547812" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:53.548293" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:53.548749" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:53.549200" 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-10-15T03:06:53.549672" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:53.550294" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:53.549890" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:53.549851" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:53.550976" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:53.550599" elapsed="0.000486"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:53.550567" elapsed="0.000566"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:53.551740" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:53.551263" elapsed="0.000598"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:53.551232" elapsed="0.000679"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:53.546937" elapsed="0.005021"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:53.546563" elapsed="0.005446"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:53.537413" elapsed="0.014815">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:55.561019" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:55.561172" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:55.561412" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:55.554587" elapsed="0.007805">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:55.563079" elapsed="0.000053"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:55.564669" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:55.565136" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:55.565625" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:55.566054" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:55.566523" 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-10-15T03:06:55.566972" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:55.567587" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:55.567174" elapsed="0.000616"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:55.567118" elapsed="0.000728"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:55.568367" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:55.567959" elapsed="0.000550"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:55.567926" elapsed="0.000632"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:55.569050" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:55.568666" elapsed="0.000513"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:55.568635" elapsed="0.000593"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:55.564214" elapsed="0.005059"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:55.563272" elapsed="0.006053"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:55.553544" elapsed="0.016009">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:57.578618" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:57.578753" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:57.578990" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:57.571986" elapsed="0.008079">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:57.580775" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:57.581888" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:57.582432" elapsed="0.000093"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:57.582933" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:57.583509" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:57.584014" 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-10-15T03:06:57.584624" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:57.585275" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:57.584822" elapsed="0.000592"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:57.584783" elapsed="0.000736"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:57.586057" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:57.585668" elapsed="0.000531"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:57.585625" elapsed="0.000640"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:57.586901" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:57.586403" elapsed="0.000616"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:57.586363" elapsed="0.000708"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:57.581392" elapsed="0.005724"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:57.580936" elapsed="0.006272"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:57.570907" elapsed="0.016600">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:06:59.595615" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:06:59.595839" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:06:59.596064" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:06:59.589680" elapsed="0.007287">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:59.597712" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:59.598660" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:59.599108" elapsed="0.000078"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:59.599602" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:59.600023" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:59.600484" 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-10-15T03:06:59.600925" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:59.601537" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:59.601113" elapsed="0.000532"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:59.601077" elapsed="0.000620"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:59.602192" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:59.601804" elapsed="0.000495"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:59.601774" elapsed="0.000572"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:06:59.602847" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:06:59.602473" elapsed="0.000480"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:06:59.602418" elapsed="0.000580"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:06:59.598257" elapsed="0.004785"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:06:59.597875" elapsed="0.005216"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:06:59.588790" elapsed="0.014881">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:01.612502" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:01.612626" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:01.612868" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:01.606359" elapsed="0.007436">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:01.614412" elapsed="0.000077"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:01.615350" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:01.615824" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:01.616386" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:01.616849" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:01.617297" 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-10-15T03:07:01.617774" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:01.618375" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:01.617962" elapsed="0.000553"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:01.617925" elapsed="0.000644"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:01.619057" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:01.618680" elapsed="0.000511"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:01.618648" elapsed="0.000591"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:01.619758" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:01.619345" elapsed="0.000523"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:01.619314" elapsed="0.000601"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:01.614951" elapsed="0.005009"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:01.614594" elapsed="0.005417"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:01.605514" elapsed="0.014721">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:03.629549" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:03.629693" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:03.629928" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:03.622708" elapsed="0.008282">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:03.631746" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:03.632827" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:03.633361" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:03.633859" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:03.634369" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:03.634925" 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-10-15T03:07:03.635521" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:03.636112" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:03.635720" elapsed="0.000553"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:03.635679" elapsed="0.000664"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:03.636912" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:03.636524" elapsed="0.000496"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:03.636478" elapsed="0.000725"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:03.637803" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:03.637357" elapsed="0.000559"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:03.637315" elapsed="0.000649"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:03.632368" elapsed="0.005643"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:03.631913" elapsed="0.006150"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:03.621654" elapsed="0.016672">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:05.647704" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:05.647832" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:05.648056" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:05.640821" elapsed="0.008974">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:05.650566" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:05.651643" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:05.652096" elapsed="0.000074"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:05.652693" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:05.653156" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:05.653747" 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-10-15T03:07:05.654260" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:05.654931" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:05.654529" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:05.654485" elapsed="0.000608"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:05.655661" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:05.655245" elapsed="0.000529"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:05.655212" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:05.656404" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:05.655928" elapsed="0.000653"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:05.655897" elapsed="0.000739"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:05.651114" elapsed="0.005569"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:05.650741" elapsed="0.005994"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:05.639762" elapsed="0.017176">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:07.665407" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:07.665579" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:07.665918" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:07.659182" elapsed="0.007699">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.667563" elapsed="0.000053"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.668583" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.669060" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.669573" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.670069" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.670659" elapsed="0.000049"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.671180" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.671824" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:07.671378" elapsed="0.000565"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:07.671339" elapsed="0.000657"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.672573" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:07.672135" elapsed="0.000557"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:07.672079" elapsed="0.000665"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:07.673301" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:07.672857" elapsed="0.000560"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:07.672824" elapsed="0.000672"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:07.668149" elapsed="0.005399"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:07.667724" elapsed="0.005878"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:07.658261" elapsed="0.015546">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:09.681197" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:09.681258" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:09.681367" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:09.675322" elapsed="0.006499">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:09.682134" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:09.682560" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:09.682759" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:09.682974" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:09.683183" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:09.683376" 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-10-15T03:07:09.683663" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:09.684175" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:09.683974" elapsed="0.000255"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:09.683742" elapsed="0.000510"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:09.684495" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:09.684305" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:09.684290" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:09.684791" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:09.684619" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:09.684604" elapsed="0.000259"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:09.682372" elapsed="0.002512"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:09.682205" elapsed="0.002703"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:09.674748" elapsed="0.010251">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:11.690524" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:11.690585" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:11.690693" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:11.686224" elapsed="0.004927">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:11.691491" elapsed="0.000038"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:11.692083" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:11.692387" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:11.692763" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:11.693038" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:11.693341" 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-10-15T03:07:11.693640" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:11.693999" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:11.693758" elapsed="0.000310"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:11.693734" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:11.694429" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:11.694188" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:11.694168" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:11.694848" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:11.694614" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:11.694595" elapsed="0.000377"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:11.691844" elapsed="0.003158"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:11.691609" elapsed="0.003424"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:11.685747" elapsed="0.009428">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:13.706204" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:13.706377" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:13.706701" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:13.697774" elapsed="0.010160">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:13.708837" elapsed="0.000071"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:13.710220" elapsed="0.000085"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:13.710940" elapsed="0.000067"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:13.711672" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:13.712342" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:13.713024" 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-10-15T03:07:13.713765" elapsed="0.000069"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:13.714689" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:13.714047" elapsed="0.000806"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:13.713992" elapsed="0.000951"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:13.715700" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:13.715121" elapsed="0.000741"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:13.715053" elapsed="0.000881"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:13.716707" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:13.716093" elapsed="0.000783"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:13.716047" elapsed="0.000902"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:13.709636" elapsed="0.007383"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:13.709051" elapsed="0.008070"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:13.696655" elapsed="0.020743">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:15.726552" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:15.726679" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:15.726942" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:15.719687" elapsed="0.008209">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.728761" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.729852" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.730439" elapsed="0.000092"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.731084" elapsed="0.000081"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.731619" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.731992" elapsed="0.000036"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.732403" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.732853" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:15.732587" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:15.732553" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.733316" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:15.733026" elapsed="0.000366"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:15.733007" elapsed="0.000415"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:15.733766" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:15.733512" elapsed="0.000327"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:15.733492" elapsed="0.000376"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:15.729382" elapsed="0.004513"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:15.728956" elapsed="0.004970"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:15.718743" elapsed="0.015330">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:17.742720" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:17.742845" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:17.743062" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:17.736193" elapsed="0.007778">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.744601" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.745543" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.745983" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.746428" elapsed="0.000068"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.746880" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.747321" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.747798" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.748394" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:17.747991" elapsed="0.000640"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:17.747954" elapsed="0.000732"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.749196" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:17.748795" elapsed="0.000509"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:17.748764" elapsed="0.000587"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:17.749866" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:17.749482" elapsed="0.000493"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:17.749424" elapsed="0.000597"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:17.745143" elapsed="0.004922"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:17.744751" elapsed="0.005388"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:17.735330" elapsed="0.015002">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:19.759074" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:19.759235" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:19.759509" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:19.752437" elapsed="0.007977">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.761151" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.762617" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.763067" elapsed="0.000065"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.763553" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.763980" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.764438" elapsed="0.000069"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.764909" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.765525" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:19.765113" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:19.765056" elapsed="0.000634"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.766194" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:19.765800" elapsed="0.000503"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:19.765769" elapsed="0.000580"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:19.766852" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:19.766479" elapsed="0.000494"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:19.766422" elapsed="0.000597"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:19.762196" elapsed="0.004868"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:19.761310" elapsed="0.005825"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:19.751602" elapsed="0.015737">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:21.776108" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:21.776418" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:21.776769" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:21.769412" elapsed="0.008341">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:21.778625" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:21.780021" elapsed="0.000100"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:21.780758" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:21.781314" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:21.781902" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:21.782400" 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-10-15T03:07:21.782969" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:21.783654" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:21.783204" elapsed="0.000569"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:21.783165" elapsed="0.000659"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:21.784350" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:21.783932" elapsed="0.000559"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:21.783901" elapsed="0.000639"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:21.785063" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:21.784670" elapsed="0.000531"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:21.784636" elapsed="0.000625"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:21.779403" elapsed="0.005927"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:21.778857" elapsed="0.006544"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:21.768557" elapsed="0.017114">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:23.794837" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:23.794967" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:23.795227" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:23.788200" elapsed="0.008010">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:23.796862" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:23.797807" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:23.798272" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:23.798843" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:23.799295" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:23.799769" 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-10-15T03:07:23.800239" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:23.800843" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:23.800426" elapsed="0.000537"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:23.800389" elapsed="0.000625"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:23.801564" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:23.801143" elapsed="0.000539"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:23.801111" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:23.802343" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:23.801835" elapsed="0.000714"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:23.801805" elapsed="0.000816"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:23.797403" elapsed="0.005288"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:23.797013" elapsed="0.005756"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:23.787161" elapsed="0.015831">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:25.813658" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:25.813814" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:25.814092" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:25.806262" elapsed="0.009232">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:25.816357" elapsed="0.000077"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:25.817543" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:25.818094" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:25.818723" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:25.819257" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:25.819731" 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-10-15T03:07:25.820251" elapsed="0.000059"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:25.821043" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:25.820543" elapsed="0.000644"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:25.820488" elapsed="0.000754"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:25.821807" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:25.821351" elapsed="0.000592"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:25.821320" elapsed="0.000831"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:25.822879" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:25.822317" elapsed="0.000718"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:25.822273" elapsed="0.000849"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:25.817049" elapsed="0.006127"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:25.816622" elapsed="0.006605"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:25.805044" elapsed="0.018391">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:27.832613" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:27.832746" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:27.832981" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:27.825911" elapsed="0.008200">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.834862" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.835979" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.836611" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.837054" elapsed="0.000082"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.837659" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.838128" elapsed="0.000053"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.838694" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.839389" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:27.838896" elapsed="0.000667"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:27.838848" elapsed="0.000773"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.840157" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:27.839733" elapsed="0.000564"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:27.839702" elapsed="0.000658"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:27.840944" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:27.840536" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:27.840492" elapsed="0.000652"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:27.835574" elapsed="0.005631"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:27.835028" elapsed="0.006243"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:27.824900" elapsed="0.016659">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:29.850785" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:29.850917" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:29.851323" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:29.844051" elapsed="0.008844">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:29.853697" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:29.854766" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:29.855293" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:29.855823" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:29.856359" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:29.856867" 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-10-15T03:07:29.857480" elapsed="0.000058"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:29.858130" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:29.857697" elapsed="0.000546"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:29.857658" elapsed="0.000637"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:29.858812" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:29.858403" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:29.858372" elapsed="0.000594"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:29.859629" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:29.859097" elapsed="0.000647"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:29.859039" elapsed="0.000753"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:29.854323" elapsed="0.005515"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:29.853863" elapsed="0.006025"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:29.843027" elapsed="0.017156">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:31.869181" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:31.869316" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:31.869600" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:31.862383" elapsed="0.008146">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.871169" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.872083" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.872548" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.872992" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.873497" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.873920" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.874509" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.875107" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:31.874705" elapsed="0.000516"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:31.874669" elapsed="0.000605"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.875785" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:31.875383" elapsed="0.000517"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:31.875351" elapsed="0.000600"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:31.876501" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:31.876089" elapsed="0.000530"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:31.876037" elapsed="0.000633"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:31.871698" elapsed="0.005024"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:31.871318" elapsed="0.005462"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:31.861515" elapsed="0.015479">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:33.886782" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:33.886910" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:33.887181" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:33.879610" elapsed="0.008640">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:33.888932" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:33.889983" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:33.890566" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:33.891002" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:33.891594" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:33.892029" 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-10-15T03:07:33.892616" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:33.893740" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:33.893266" elapsed="0.000590"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:33.892769" elapsed="0.001141"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:33.894559" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:33.894020" elapsed="0.000666"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:33.893990" elapsed="0.000743"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:33.895301" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:33.894839" elapsed="0.000600"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:33.894809" elapsed="0.000724"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:33.889607" elapsed="0.005986"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:33.889131" elapsed="0.006521"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:33.878513" elapsed="0.017344">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:35.904160" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:35.904292" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:35.904559" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:35.898154" elapsed="0.007404">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:35.906265" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:35.907274" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:35.907783" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:35.908263" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:35.908774" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:35.909251" 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-10-15T03:07:35.909828" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:35.910509" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:35.910031" elapsed="0.000596"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:35.909993" elapsed="0.000689"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:35.911220" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:35.910798" elapsed="0.000538"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:35.910766" elapsed="0.000632"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:35.911938" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:35.911540" elapsed="0.000538"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:35.911507" elapsed="0.000623"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:35.906845" elapsed="0.005335"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:35.906422" elapsed="0.005814"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:35.897270" elapsed="0.015170">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:37.921006" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:37.921153" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:37.921379" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:37.914637" elapsed="0.007672">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:37.923088" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:37.924021" elapsed="0.000065"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:37.924519" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:37.924951" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:37.925409" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:37.925864" 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-10-15T03:07:37.926333" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:37.926927" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:37.926543" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:37.926504" elapsed="0.000602"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:37.927627" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:37.927214" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:37.927183" elapsed="0.000601"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:37.928276" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:37.927886" elapsed="0.000499"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:37.927856" elapsed="0.000575"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:37.923644" elapsed="0.004859"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:37.923246" elapsed="0.005308"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:37.913713" elapsed="0.015044">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:39.940638" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:39.940771" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:39.941015" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:39.930960" elapsed="0.011042">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:39.942694" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:39.943795" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:39.944346" elapsed="0.000067"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:39.945018" elapsed="0.000092"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:39.945741" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:39.946287" 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-10-15T03:07:39.946918" elapsed="0.000059"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:39.947738" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:39.947280" elapsed="0.000675"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:39.947219" elapsed="0.000790"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:39.948571" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:39.948149" elapsed="0.000537"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:39.948114" elapsed="0.000620"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:39.949298" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:39.948840" elapsed="0.000578"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:39.948808" elapsed="0.000688"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:39.943302" elapsed="0.006241"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:39.942859" elapsed="0.006737"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:39.930102" elapsed="0.019729">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:41.958967" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:41.959121" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:41.959345" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:41.951897" elapsed="0.008376">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:41.960933" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:41.961903" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:41.962366" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:41.962830" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:41.963279" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:41.963795" 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-10-15T03:07:41.964259" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:41.964855" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:41.964442" elapsed="0.000554"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:41.964405" elapsed="0.000662"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:41.965592" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:41.965177" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:41.965145" elapsed="0.000605"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:41.966251" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:41.965853" elapsed="0.000507"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:41.965823" elapsed="0.000585"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:41.961514" elapsed="0.004966"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:41.961108" elapsed="0.005425"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:41.950995" elapsed="0.015734">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:43.975533" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:43.975834" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:43.976176" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:43.968956" elapsed="0.008566">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:43.978358" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:43.979385" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:43.979867" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:43.980490" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:43.980924" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:43.981414" elapsed="0.000077"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:43.981953" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:44.043505" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:44.043178" elapsed="0.000424"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:43.982140" elapsed="0.061495"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:44.043958" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:44.043713" elapsed="0.000332"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:44.043695" elapsed="0.000392"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:44.044418" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:44.044160" elapsed="0.000353"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:44.044139" elapsed="0.000406"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:43.978931" elapsed="0.065643"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:43.978564" elapsed="0.066042"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:43.967975" elapsed="0.076749">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:46.053243" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:46.053375" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:46.053657" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:46.046961" elapsed="0.007836">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.055589" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.056784" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.057519" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.058368" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.059004" elapsed="0.000076"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.059576" elapsed="0.000052"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.060112" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.060773" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:46.060317" elapsed="0.000574"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:46.060278" elapsed="0.000669"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.061605" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:46.061092" elapsed="0.000646"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:46.061058" elapsed="0.000732"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:46.062344" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:46.061903" elapsed="0.000594"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:46.061871" elapsed="0.000679"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:46.056321" elapsed="0.006277"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:46.055783" elapsed="0.006871"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:46.045957" elapsed="0.016939">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:48.070306" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:48.070374" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:48.070530" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:48.064544" elapsed="0.006561">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:48.071531" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:48.072430" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:48.072738" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:48.073063" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:48.073375" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:48.073698" 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-10-15T03:07:48.074029" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:48.074432" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:48.074164" elapsed="0.000357"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:48.074136" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:48.074874" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:48.074629" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:48.074609" elapsed="0.000451"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:48.075362" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:48.075132" elapsed="0.000281"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:48.075113" elapsed="0.000328"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:48.072165" elapsed="0.003331"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:48.071639" elapsed="0.003888"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:48.063897" elapsed="0.011760">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:50.084002" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:50.084146" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:50.084364" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:50.078077" elapsed="0.007196">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:50.085895" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:50.086890" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:50.087371" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:50.087841" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:50.088361" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:50.088858" 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-10-15T03:07:50.089334" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:50.089955" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:50.089568" elapsed="0.000576"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:50.089527" elapsed="0.000682"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:50.090818" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:50.090329" elapsed="0.000617"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:50.090295" elapsed="0.000702"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:50.091601" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:50.091137" elapsed="0.000599"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:50.091103" elapsed="0.000680"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:50.086504" elapsed="0.005323"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:50.086088" elapsed="0.005789"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:50.077157" elapsed="0.014952">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:52.100134" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:52.100256" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:52.100620" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:52.094215" elapsed="0.007312">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.102138" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.103087" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.103560" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.103987" elapsed="0.000065"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.104433" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.104883" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.105342" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.106335" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:52.105907" elapsed="0.000569"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:52.105518" elapsed="0.001014"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.107049" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:52.106645" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:52.106613" elapsed="0.000593"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:52.107715" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:52.107311" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:52.107281" elapsed="0.000589"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:52.102687" elapsed="0.005228"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:52.102289" elapsed="0.005675"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:52.093339" elapsed="0.014839">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:54.116406" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:54.116586" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:54.116807" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:54.110289" elapsed="0.007426">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:54.118317" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:54.119238" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:54.119710" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:54.120162" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:54.120619" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:54.121072" 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-10-15T03:07:54.121641" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:54.122238" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:54.121827" elapsed="0.000522"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:54.121790" elapsed="0.000609"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:54.122916" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:54.122539" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:54.122506" elapsed="0.000590"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:54.123605" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:54.123203" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:54.123171" elapsed="0.000590"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:54.118846" elapsed="0.004962"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:54.118492" elapsed="0.005366"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:54.109429" elapsed="0.014642">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:56.131950" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:56.132058" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:56.132215" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:56.126131" elapsed="0.006741">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:56.133325" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:56.134029" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:56.134342" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:56.134677" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:56.134975" elapsed="0.000099"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:56.135301" 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-10-15T03:07:56.135526" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:56.135798" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:56.135620" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:56.135600" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:56.136259" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:56.135974" elapsed="0.000366"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:56.135951" elapsed="0.000423"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:56.136735" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:56.136472" elapsed="0.000347"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:56.136430" elapsed="0.000430"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:56.133730" elapsed="0.003205"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:56.133436" elapsed="0.003533"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:56.125256" elapsed="0.011868">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:07:58.145580" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:07:58.145707" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:07:58.145936" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:07:58.139811" elapsed="0.007020">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:58.147425" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:58.148355" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:58.148826" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:58.149284" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:58.149750" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:58.150205" 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-10-15T03:07:58.150674" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:58.151424" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:58.150865" elapsed="0.000706"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:58.150829" elapsed="0.000795"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:58.152128" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:58.151735" elapsed="0.000501"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:58.151704" elapsed="0.000578"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:07:58.152790" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:07:58.152388" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:07:58.152358" elapsed="0.000594"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:07:58.147957" elapsed="0.005062"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:07:58.147606" elapsed="0.005466"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:07:58.138916" elapsed="0.014353">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:00.161092" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:00.161213" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:00.161427" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:00.155373" elapsed="0.006971">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:00.163066" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:00.164006" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:00.164476" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:00.164906" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:00.165355" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:00.165813" 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-10-15T03:08:00.166284" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:00.166883" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:00.166499" elapsed="0.000514"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:00.166433" elapsed="0.000633"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:00.167582" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:00.167176" elapsed="0.000519"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:00.167145" elapsed="0.000597"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:00.168247" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:00.167848" elapsed="0.000509"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:00.167817" elapsed="0.000587"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:00.163611" elapsed="0.004866"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:00.163219" elapsed="0.005311"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:00.154535" elapsed="0.014187">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:02.176297" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:02.176387" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:02.176577" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:02.170322" elapsed="0.007261">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.178048" elapsed="0.000037"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.178686" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.179005" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.179295" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.179600" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.179884" elapsed="0.000026"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.180193" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.180598" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:02.180321" elapsed="0.000429"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:02.180295" elapsed="0.000492"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.181126" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:02.180861" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:02.180840" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:02.181570" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:02.181299" elapsed="0.000343"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:02.181279" elapsed="0.000394"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:02.178412" elapsed="0.003291"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:02.178159" elapsed="0.003579"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:02.169705" elapsed="0.012171">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:04.190597" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:04.190722" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:04.190946" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:04.183998" elapsed="0.007862">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:04.192497" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:04.193420" elapsed="0.000074"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:04.193895" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:04.194352" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:04.194811" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:04.195275" 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-10-15T03:08:04.195756" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:04.196347" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:04.195940" elapsed="0.000543"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:04.195904" elapsed="0.000632"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:04.197038" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:04.196646" elapsed="0.000502"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:04.196613" elapsed="0.000582"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:04.197702" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:04.197298" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:04.197268" elapsed="0.000591"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:04.193044" elapsed="0.004860"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:04.192650" elapsed="0.005303"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:04.183114" elapsed="0.015054">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:06.207372" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:06.207647" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:06.207879" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:06.200426" elapsed="0.008388">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:06.209524" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:06.210518" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:06.211025" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:06.211504" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:06.211943" elapsed="0.000075"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:06.212527" 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-10-15T03:08:06.213013" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:06.214130" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:06.213637" elapsed="0.000620"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:06.213170" elapsed="0.001143"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:06.214898" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:06.214427" elapsed="0.000645"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:06.214395" elapsed="0.000740"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:06.215797" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:06.215276" elapsed="0.000640"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:06.215235" elapsed="0.000728"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:06.210100" elapsed="0.005941"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:06.209690" elapsed="0.006424"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:06.199517" elapsed="0.016813">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:08.226237" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:08.226367" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:08.226643" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:08.218732" elapsed="0.008833">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.228199" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.229170" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.229668" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.230238" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.230700" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.231148" elapsed="0.000092"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.231680" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.232283" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:08.231871" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:08.231833" elapsed="0.000640"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.232984" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:08.232588" elapsed="0.000507"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:08.232556" elapsed="0.000586"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:08.233650" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:08.233247" elapsed="0.000513"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:08.233216" elapsed="0.000591"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:08.228760" elapsed="0.005092"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:08.228356" elapsed="0.005547"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:08.217750" elapsed="0.016375">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:10.243194" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:10.243313" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:10.243561" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:10.236176" elapsed="0.008242">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.245036" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.245936" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.246394" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.246849" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.247294" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.247740" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.248196" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.248779" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:10.248374" elapsed="0.000513"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:10.248338" elapsed="0.000599"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.249441" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:10.249066" elapsed="0.000509"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:10.249034" elapsed="0.000676"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:10.250221" elapsed="0.000102"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:10.249822" elapsed="0.000577"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:10.249791" elapsed="0.000678"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:10.245565" elapsed="0.004955"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:10.245181" elapsed="0.005390"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:10.235337" elapsed="0.015424">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:12.260008" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:12.260130" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:12.260359" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:12.253242" elapsed="0.008035">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:12.261884" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:12.262818" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:12.263287" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:12.263748" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:12.264203" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:12.264660" 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-10-15T03:08:12.265127" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:12.265734" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:12.265318" elapsed="0.000528"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:12.265276" elapsed="0.000621"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:12.266410" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:12.266031" elapsed="0.000519"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:12.265998" elapsed="0.000600"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:12.267112" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:12.266706" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:12.266674" elapsed="0.000599"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:12.262412" elapsed="0.004910"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:12.262056" elapsed="0.005316"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:12.251905" elapsed="0.015688">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:14.278061" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:14.278183" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:14.278533" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:14.269703" elapsed="0.009706">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:14.280044" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:14.280990" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:14.281443" elapsed="0.000072"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:14.281914" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:14.282374" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:14.282838" 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-10-15T03:08:14.283416" elapsed="0.000072"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:14.284123" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:14.283658" elapsed="0.000582"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:14.283608" elapsed="0.000683"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:14.284816" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:14.284401" elapsed="0.000525"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:14.284369" elapsed="0.000626"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:14.285564" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:14.285125" elapsed="0.000559"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:14.285080" elapsed="0.000651"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:14.280584" elapsed="0.005193"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:14.280193" elapsed="0.005633"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:14.268836" elapsed="0.017209">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:16.295427" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:16.295588" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:16.295805" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:16.288184" elapsed="0.008534">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:16.297326" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:16.298751" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:16.299225" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:16.299693" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:16.300145" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:16.300601" 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-10-15T03:08:16.301161" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:16.301766" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:16.301349" elapsed="0.000528"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:16.301312" elapsed="0.000615"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:16.302439" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:16.302057" elapsed="0.000522"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:16.302025" elapsed="0.000603"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:16.303137" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:16.302736" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:16.302705" elapsed="0.000589"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:16.298339" elapsed="0.005002"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:16.297501" elapsed="0.005893"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:16.287259" elapsed="0.016361">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:18.312317" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:18.312442" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:18.312708" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:18.305691" elapsed="0.007927">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:18.314225" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:18.315180" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:18.315656" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:18.316108" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:18.316562" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:18.317016" 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-10-15T03:08:18.317492" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:18.318080" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:18.317678" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:18.317642" elapsed="0.000595"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:18.318742" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:18.318342" elapsed="0.000511"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:18.318312" elapsed="0.000587"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:18.319399" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:18.319026" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:18.318996" elapsed="0.000595"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:18.314759" elapsed="0.004876"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:18.314372" elapsed="0.005312"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:18.304827" elapsed="0.015046">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:20.329491" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:20.329636" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:20.329856" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:20.322124" elapsed="0.008637">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:20.331366" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:20.332303" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:20.332782" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:20.333233" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:20.333696" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:20.334151" 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-10-15T03:08:20.334666" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:20.335310" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:20.334875" elapsed="0.000552"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:20.334835" elapsed="0.000693"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:20.336057" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:20.335652" elapsed="0.000517"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:20.335619" elapsed="0.000597"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:20.336730" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:20.336323" elapsed="0.000516"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:20.336292" elapsed="0.000593"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:20.331905" elapsed="0.005025"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:20.331546" elapsed="0.005459"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:20.321254" elapsed="0.015944">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:22.346824" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:22.346973" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:22.347216" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:22.339808" elapsed="0.008332">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:22.348850" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:22.349796" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:22.350263" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:22.350723" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:22.351169" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:22.351625" 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-10-15T03:08:22.352086" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:22.352679" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:22.352269" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:22.352233" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:22.353338" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:22.352961" elapsed="0.000513"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:22.352913" elapsed="0.000612"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:22.354057" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:22.353655" elapsed="0.000513"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:22.353600" elapsed="0.000613"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:22.349382" elapsed="0.004876"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:22.349021" elapsed="0.005286"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:22.338979" elapsed="0.015590">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:24.363432" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:24.363599" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:24.363827" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:24.356667" elapsed="0.008077">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.365347" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.366282" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.366763" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.367209" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.367677" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.368126" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.368666" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.369329" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:24.368853" elapsed="0.000782"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:24.368817" elapsed="0.000876"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.370212" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:24.369807" elapsed="0.000516"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:24.369775" elapsed="0.000596"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:24.370921" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:24.370511" elapsed="0.000546"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:24.370477" elapsed="0.000628"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:24.365884" elapsed="0.005267"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:24.365525" elapsed="0.005678"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:24.355812" elapsed="0.015583">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:26.382968" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:26.383077" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:26.383289" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:26.374279" elapsed="0.009846">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.384701" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.385544" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.385964" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.386360" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.386799" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.387235" elapsed="0.000038"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.387671" elapsed="0.000038"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.388212" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:26.387841" elapsed="0.000471"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:26.387807" elapsed="0.000551"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.388825" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:26.388481" elapsed="0.000439"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:26.388427" elapsed="0.000558"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:26.389422" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:26.389081" elapsed="0.000468"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:26.389054" elapsed="0.000538"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:26.385179" elapsed="0.004453"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:26.384835" elapsed="0.004842"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:26.373057" elapsed="0.016790">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:28.399626" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:28.400008" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:28.400330" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:28.392221" elapsed="0.009424">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.402598" elapsed="0.000077"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.404011" elapsed="0.000078"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.404744" elapsed="0.000072"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.405508" elapsed="0.000070"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.406204" elapsed="0.000065"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.406911" elapsed="0.000101"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.407710" elapsed="0.000072"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.408716" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:28.408051" elapsed="0.000851"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:28.407987" elapsed="0.001026"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.409819" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:28.409196" elapsed="0.000816"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:28.409144" elapsed="0.000942"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:28.410875" elapsed="0.000097"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:28.410249" elapsed="0.000837"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:28.410202" elapsed="0.000964"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:28.403374" elapsed="0.007869"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:28.402809" elapsed="0.008516"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:28.391211" elapsed="0.020464">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:30.420043" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:30.420165" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:30.420376" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:30.413777" elapsed="0.007507">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:30.421887" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:30.422824" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:30.423288" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:30.423860" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:30.424757" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:30.425229" 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-10-15T03:08:30.425755" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:30.426359" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:30.425968" elapsed="0.000532"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:30.425911" elapsed="0.000641"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:30.427067" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:30.426665" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:30.426633" elapsed="0.000593"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:30.427738" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:30.427331" elapsed="0.000517"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:30.427300" elapsed="0.000595"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:30.422417" elapsed="0.005545"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:30.422054" elapsed="0.005962"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:30.412906" elapsed="0.015303">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:32.438603" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:32.438759" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:32.439059" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:32.430608" elapsed="0.009606">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.441003" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.442181" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.442712" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.443292" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.443870" elapsed="0.000088"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.444431" elapsed="0.000083"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.444994" elapsed="0.000052"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.445724" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:32.445215" elapsed="0.000637"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:32.445163" elapsed="0.000805"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.446556" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:32.446131" elapsed="0.000542"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:32.446096" elapsed="0.000728"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:32.447392" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:32.446997" elapsed="0.000542"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:32.446960" elapsed="0.000630"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:32.441698" elapsed="0.005955"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:32.441182" elapsed="0.006548"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:32.429606" elapsed="0.018398">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:34.454685" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:34.454770" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:34.454948" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:34.449601" elapsed="0.005973">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:34.456005" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:34.456624" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:34.456931" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:34.457216" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:34.457515" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:34.457802" 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-10-15T03:08:34.458120" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:34.458517" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:34.458249" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:34.458222" elapsed="0.000404"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:34.458961" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:34.458699" elapsed="0.000335"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:34.458679" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:34.459378" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:34.459136" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:34.459116" elapsed="0.000385"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:34.456354" elapsed="0.003178"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:34.456109" elapsed="0.003457"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:34.448974" elapsed="0.010727">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:36.469210" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:36.469337" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:36.469712" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:36.462606" elapsed="0.008061">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:36.471272" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:36.472201" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:36.472680" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:36.473144" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:36.473604" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:36.474066" 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-10-15T03:08:36.474541" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:36.475245" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:36.474728" elapsed="0.000646"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:36.474692" elapsed="0.000736"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:36.476046" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:36.475588" elapsed="0.000586"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:36.475550" elapsed="0.000674"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:36.476768" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:36.476339" elapsed="0.000548"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:36.476304" elapsed="0.000659"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:36.471803" elapsed="0.005210"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:36.471420" elapsed="0.005645"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:36.461671" elapsed="0.015595">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:38.486056" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:38.486180" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:38.486408" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:38.479356" elapsed="0.008024">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:38.488014" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:38.488951" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:38.489420" elapsed="0.000070"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:38.489878" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:38.490320" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:38.490770" 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-10-15T03:08:38.491343" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:38.491971" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:38.491563" elapsed="0.000520"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:38.491526" elapsed="0.000608"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:38.492662" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:38.492242" elapsed="0.000530"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:38.492211" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:38.493323" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:38.492947" elapsed="0.000484"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:38.492893" elapsed="0.000614"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:38.488555" elapsed="0.005000"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:38.488166" elapsed="0.005439"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:38.478508" elapsed="0.015297">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:40.503151" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:40.503272" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:40.506348" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:40.495825" elapsed="0.011461">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:40.507893" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:40.508827" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:40.509295" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:40.509754" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:40.510205" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:40.510667" 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-10-15T03:08:40.511139" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:40.511741" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:40.511323" elapsed="0.000528"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:40.511286" elapsed="0.000713"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:40.512541" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:40.512120" elapsed="0.000538"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:40.512088" elapsed="0.000618"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:40.513216" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:40.512811" elapsed="0.000514"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:40.512781" elapsed="0.000594"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:40.508422" elapsed="0.005001"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:40.508065" elapsed="0.005438"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:40.494979" elapsed="0.018719">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:42.522368" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:42.522526" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:42.522853" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:42.515866" elapsed="0.008512">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:42.525270" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:42.526233" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:42.526710" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:42.527170" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:42.527631" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:42.528106" 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-10-15T03:08:42.528591" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:42.529191" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:42.528779" elapsed="0.000522"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:42.528742" elapsed="0.000609"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:42.529869" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:42.529488" elapsed="0.000514"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:42.529429" elapsed="0.000622"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:42.530564" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:42.530157" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:42.530127" elapsed="0.000595"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:42.525828" elapsed="0.004939"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:42.525444" elapsed="0.005374"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:42.515026" elapsed="0.016006">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:44.540227" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:44.540350" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:44.540632" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:44.533136" elapsed="0.008411">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:44.542245" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:44.543179" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:44.543652" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:44.544099" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:44.544553" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:44.545004" 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-10-15T03:08:44.545474" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:44.546071" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:44.545662" elapsed="0.000522"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:44.545625" elapsed="0.000610"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:44.546748" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:44.546342" elapsed="0.000517"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:44.546311" elapsed="0.000616"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:44.547863" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:44.547033" elapsed="0.000972"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:44.547002" elapsed="0.001054"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:44.542780" elapsed="0.005323"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:44.542391" elapsed="0.005764"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:44.532270" elapsed="0.016079">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:46.556324" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:46.556483" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:46.556712" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:46.550416" elapsed="0.007202">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:46.558225" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:46.559205" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:46.559681" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:46.560139" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:46.560602" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:46.561134" 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-10-15T03:08:46.561708" elapsed="0.000061"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:46.562371" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:46.561970" elapsed="0.000672"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:46.561927" elapsed="0.000776"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:46.563247" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:46.562825" elapsed="0.000539"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:46.562790" elapsed="0.000624"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:46.563978" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:46.563563" elapsed="0.000530"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:46.563530" elapsed="0.000611"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:46.558804" elapsed="0.005413"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:46.558370" elapsed="0.005905"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:46.549564" elapsed="0.014974">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:48.573087" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:48.573216" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:48.573438" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:48.566688" elapsed="0.007662">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.575125" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.576178" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.576646" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.577091" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.577528" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.577987" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.578423" elapsed="0.000064"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.579029" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:48.578632" elapsed="0.000504"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:48.578596" elapsed="0.000592"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.579692" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:48.579294" elapsed="0.000505"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:48.579263" elapsed="0.000582"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:48.580330" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:48.579964" elapsed="0.000472"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:48.579935" elapsed="0.000575"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:48.575750" elapsed="0.004805"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:48.575296" elapsed="0.005309"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:48.565807" elapsed="0.014999">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:50.589826" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:50.590087" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:50.590329" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:50.582969" elapsed="0.008276">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:50.591860" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:50.592791" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:50.593258" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:50.593722" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:50.594177" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:50.594639" 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-10-15T03:08:50.595106" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:50.595704" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:50.595291" elapsed="0.000523"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:50.595254" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:50.596372" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:50.595995" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:50.595963" elapsed="0.000597"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:50.597066" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:50.596666" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:50.596635" elapsed="0.000588"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:50.592382" elapsed="0.004887"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:50.592025" elapsed="0.005294"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:50.582100" elapsed="0.015444">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:52.606784" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:52.606938" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:52.607160" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:52.599967" elapsed="0.008179">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:52.608808" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:52.609842" elapsed="0.000073"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:52.610336" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:52.610925" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:52.611361" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:52.611826" 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-10-15T03:08:52.612295" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:52.612970" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:52.612510" elapsed="0.000574"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:52.612444" elapsed="0.000690"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:52.613655" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:52.613244" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:52.613212" elapsed="0.000604"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:52.614325" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:52.613945" elapsed="0.000491"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:52.613912" elapsed="0.000604"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:52.609388" elapsed="0.005175"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:52.609000" elapsed="0.005614"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:52.598812" elapsed="0.015993">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:54.625377" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:54.625523" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:54.625743" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:54.617927" elapsed="0.008660">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:54.627323" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:54.628069" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:54.628380" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:54.628690" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:54.629000" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:54.629275" 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-10-15T03:08:54.629586" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:54.630429" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:54.630106" elapsed="0.000447"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:54.629696" elapsed="0.000906"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:54.631085" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:54.630707" elapsed="0.000476"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:54.630677" elapsed="0.000642"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:54.631791" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:54.631423" elapsed="0.000484"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:54.631396" elapsed="0.000550"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:54.627789" elapsed="0.004202"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:54.627438" elapsed="0.004602"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:54.616608" elapsed="0.015613">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:56.641333" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:56.641501" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:56.641741" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:56.634408" elapsed="0.008302">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:56.643360" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:56.644381" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:56.644911" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:56.645378" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:56.645889" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:56.646354" 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-10-15T03:08:56.646859" elapsed="0.000067"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:56.647519" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:56.647079" elapsed="0.000558"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:56.647041" elapsed="0.000650"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:56.648241" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:56.647809" elapsed="0.000549"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:56.647776" elapsed="0.000633"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:56.648980" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:56.648553" elapsed="0.000546"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:56.648519" elapsed="0.000631"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:56.643975" elapsed="0.005223"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:56.643554" elapsed="0.005698"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:56.633518" elapsed="0.015974">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:08:58.655922" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:08:58.656005" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:08:58.656243" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:08:58.651035" elapsed="0.005807">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:58.657248" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:58.657846" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:58.658155" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:58.658435" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:58.658739" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:58.659033" 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-10-15T03:08:58.659323" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:58.659720" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:58.659467" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:58.659423" elapsed="0.000404"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:58.660154" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:58.659915" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:58.659893" elapsed="0.000366"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:08:58.660587" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:08:58.660329" elapsed="0.000332"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:08:58.660308" elapsed="0.000383"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:08:58.657604" elapsed="0.003118"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:08:58.657346" elapsed="0.003409"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:08:58.650403" elapsed="0.010523">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:00.669698" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:00.669824" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:00.670097" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:00.663037" elapsed="0.007989">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:00.671646" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:00.672581" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:00.673044" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:00.673500" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:00.673952" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:00.674385" 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-10-15T03:09:00.674984" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:00.675589" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:00.675176" elapsed="0.000523"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:00.675139" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:00.676257" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:00.675858" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:00.675827" elapsed="0.000588"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:00.676951" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:00.676553" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:00.676520" elapsed="0.000591"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:00.672179" elapsed="0.004980"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:00.671795" elapsed="0.005415"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:00.662163" elapsed="0.015239">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:02.685827" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:02.685973" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:02.686190" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:02.679568" elapsed="0.007530">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:02.687712" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:02.688646" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:02.689115" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:02.689578" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:02.690030" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:02.690487" 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-10-15T03:09:02.690955" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:02.691614" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:02.691162" elapsed="0.000567"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:02.691111" elapsed="0.000669"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:02.692295" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:02.691913" elapsed="0.000494"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:02.691880" elapsed="0.000603"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:02.692990" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:02.692593" elapsed="0.000506"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:02.692562" elapsed="0.000586"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:02.688236" elapsed="0.004958"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:02.687881" elapsed="0.005365"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:02.678664" elapsed="0.014772">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:04.701940" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:04.702066" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:04.702282" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:04.695684" elapsed="0.007501">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:04.703796" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:04.705185" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:04.705668" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:04.706128" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:04.706602" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:04.707059" 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-10-15T03:09:04.707529" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:04.708124" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:04.707716" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:04.707679" elapsed="0.000605"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:04.708794" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:04.708393" elapsed="0.000532"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:04.708362" elapsed="0.000612"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:04.709484" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:04.709081" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:04.709050" elapsed="0.000593"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:04.704774" elapsed="0.004916"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:04.703965" elapsed="0.005777"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:04.694820" elapsed="0.015132">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:06.719019" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:06.719186" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:06.719502" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:06.712297" elapsed="0.008095">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:06.721127" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:06.722185" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:06.722716" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:06.723197" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:06.723658" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:06.724115" 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-10-15T03:09:06.724590" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:06.725192" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:06.724778" elapsed="0.000526"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:06.724742" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:06.725999" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:06.725495" elapsed="0.000679"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:06.725434" elapsed="0.000816"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:06.727117" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:06.726416" elapsed="0.000830"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:06.726368" elapsed="0.000932"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:06.721758" elapsed="0.005594"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:06.721276" elapsed="0.006136"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:06.711250" elapsed="0.016425">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:08.737299" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:08.737493" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:08.737785" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:08.729977" elapsed="0.009098">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:08.739958" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:08.741245" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:08.741924" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:08.742573" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:08.743211" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:08.743878" 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-10-15T03:09:08.744566" elapsed="0.000061"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:08.745404" elapsed="0.000095"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:08.744826" elapsed="0.000899"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:08.744775" elapsed="0.001029"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:08.746577" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:08.745995" elapsed="0.000739"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:08.745948" elapsed="0.000851"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:08.747549" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:08.746978" elapsed="0.000724"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:08.746932" elapsed="0.000835"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:08.740688" elapsed="0.007142"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:08.740161" elapsed="0.007770"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:08.729035" elapsed="0.019163">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:10.758279" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:10.758421" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:10.758730" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:10.751047" elapsed="0.008717">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:10.760520" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:10.761840" elapsed="0.000094"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:10.762535" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:10.763072" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:10.763543" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:10.764097" 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-10-15T03:09:10.764589" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:10.765341" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:10.764791" elapsed="0.000738"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:10.764751" elapsed="0.000844"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:10.766147" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:10.765720" elapsed="0.000541"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:10.765684" elapsed="0.000627"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:10.766913" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:10.766482" elapsed="0.000553"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:10.766400" elapsed="0.000684"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:10.761138" elapsed="0.005992"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:10.760686" elapsed="0.006500"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:10.750103" elapsed="0.017284">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:12.775520" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:12.775727" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:12.775939" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:12.769243" elapsed="0.007470">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.777295" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.778138" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.778556" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.778959" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.779334" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.779727" elapsed="0.000036"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.780145" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.780671" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:12.780303" elapsed="0.000462"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:12.780271" elapsed="0.000538"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.781266" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:12.780920" elapsed="0.000441"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:12.780892" elapsed="0.000509"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:12.781873" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:12.781518" elapsed="0.000450"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:12.781490" elapsed="0.000519"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:12.777787" elapsed="0.004262"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:12.777422" elapsed="0.004669"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:12.768501" elapsed="0.013755">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:14.791615" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:14.791736" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:14.791981" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:14.784360" elapsed="0.008988">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:14.793995" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:14.794980" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:14.795499" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:14.796061" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:14.796524" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:14.796981" 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-10-15T03:09:14.797508" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:14.798180" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:14.797716" elapsed="0.000589"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:14.797677" elapsed="0.000689"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:14.798972" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:14.798546" elapsed="0.000548"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:14.798507" elapsed="0.000640"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:14.799778" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:14.799255" elapsed="0.000713"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:14.799222" elapsed="0.000814"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:14.794573" elapsed="0.005531"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:14.794144" elapsed="0.006033"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:14.783506" elapsed="0.016976">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:16.809522" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:16.809650" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:16.809896" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:16.802600" elapsed="0.008203">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:16.811420" elapsed="0.000079"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:16.812378" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:16.812882" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:16.813321" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:16.813808" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:16.814256" 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-10-15T03:09:16.814735" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:16.815337" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:16.814946" elapsed="0.000527"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:16.814908" elapsed="0.000620"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:16.816037" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:16.815638" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:16.815607" elapsed="0.000681"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:16.816828" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:16.816406" elapsed="0.000556"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:16.816373" elapsed="0.000637"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:16.811990" elapsed="0.005068"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:16.811602" elapsed="0.005507"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:16.801710" elapsed="0.015594">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:18.826552" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:18.826685" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:18.826948" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:18.819548" elapsed="0.008372">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:18.828598" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:18.829611" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:18.830105" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:18.830593" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:18.831068" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:18.831555" 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-10-15T03:09:18.832059" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:18.833178" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:18.832718" elapsed="0.000580"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:18.832218" elapsed="0.001137"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:18.833942" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:18.833506" elapsed="0.000555"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:18.833442" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:18.834654" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:18.834223" elapsed="0.000549"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:18.834190" elapsed="0.000632"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:18.829178" elapsed="0.005714"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:18.828761" elapsed="0.006187"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:18.818619" elapsed="0.016540">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:20.843923" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:20.844045" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:20.844370" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:20.837290" elapsed="0.007996">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:20.845971" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:20.847001" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:20.847515" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:20.848005" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:20.848501" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:20.848987" 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-10-15T03:09:20.849496" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:20.850135" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:20.849696" elapsed="0.000559"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:20.849656" elapsed="0.000654"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:20.850883" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:20.850428" elapsed="0.000575"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:20.850395" elapsed="0.000658"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:20.851604" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:20.851167" elapsed="0.000556"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:20.851134" elapsed="0.000638"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:20.846565" elapsed="0.005256"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:20.846134" elapsed="0.005765"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:20.836358" elapsed="0.015751">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:22.861520" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:22.861657" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:22.861913" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:22.854152" elapsed="0.008696">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.863438" elapsed="0.000102"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.864522" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.865002" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.865429" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.865911" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.866339" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.866936" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.867539" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:22.867125" elapsed="0.000525"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:22.867090" elapsed="0.000610"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.868208" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:22.867808" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:22.867777" elapsed="0.000590"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:22.868896" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:22.868501" elapsed="0.000506"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:22.868441" elapsed="0.000613"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:22.864083" elapsed="0.005018"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:22.863660" elapsed="0.005491"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:22.853285" elapsed="0.016057">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:24.880136" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:24.880273" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:24.880572" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:24.871619" elapsed="0.010116">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.882532" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.883663" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.884180" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.884737" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.885283" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.885919" elapsed="0.000057"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.886560" elapsed="0.000070"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.887403" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:24.886869" elapsed="0.000727"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:24.886785" elapsed="0.000879"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.888323" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:24.887818" elapsed="0.000664"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:24.887781" elapsed="0.000775"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:24.889293" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:24.888715" elapsed="0.000721"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:24.888667" elapsed="0.000883"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:24.883184" elapsed="0.006433"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:24.882719" elapsed="0.006956"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:24.870653" elapsed="0.019274">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:26.898259" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:26.898383" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:26.898699" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:26.892080" elapsed="0.007590">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.900321" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.901302" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.901793" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.902256" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.902716" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.903167" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.903635" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.904235" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:26.903848" elapsed="0.000496"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:26.903788" elapsed="0.000608"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.904942" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:26.904537" elapsed="0.000516"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:26.904503" elapsed="0.000597"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:26.905634" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:26.905205" elapsed="0.000542"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:26.905175" elapsed="0.000618"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:26.900905" elapsed="0.004956"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:26.900504" elapsed="0.005411"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:26.891202" elapsed="0.014913">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:28.914412" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:28.914579" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:28.914798" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:28.908374" elapsed="0.007538">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:28.916621" elapsed="0.000053"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:28.918028" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:28.918508" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:28.918979" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:28.919416" elapsed="0.000074"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:28.919911" 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-10-15T03:09:28.920360" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:28.920986" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:28.920576" elapsed="0.000521"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:28.920537" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:28.921751" elapsed="0.000100"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:28.921257" elapsed="0.000679"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:28.921226" elapsed="0.000759"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:28.922698" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:28.922238" elapsed="0.000687"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:28.922194" elapsed="0.000784"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:28.917615" elapsed="0.005411"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:28.916774" elapsed="0.006302"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:28.907532" elapsed="0.015746">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:30.931421" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:30.931594" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:30.931847" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:30.925477" elapsed="0.007309">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:30.933430" elapsed="0.000084"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:30.934431" elapsed="0.000078"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:30.934957" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:30.935419" elapsed="0.000074"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:30.935936" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:30.936415" 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-10-15T03:09:30.936949" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:30.937581" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:30.937140" elapsed="0.000661"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:30.937103" elapsed="0.000776"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:30.938410" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:30.938000" elapsed="0.000559"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:30.937965" elapsed="0.000646"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:30.939156" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:30.938727" elapsed="0.000546"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:30.938694" elapsed="0.000630"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:30.934030" elapsed="0.005343"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:30.933620" elapsed="0.005809"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:30.924579" elapsed="0.015084">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:32.948620" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:32.948743" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:32.948987" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:32.941690" elapsed="0.008201">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.950508" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.951414" elapsed="0.000074"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.951908" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.952342" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.952796" elapsed="0.000065"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.953247" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.953718" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.954379" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:32.953945" elapsed="0.000572"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:32.953902" elapsed="0.000667"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.955080" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:32.954680" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:32.954647" elapsed="0.000590"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:32.955745" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:32.955342" elapsed="0.000536"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:32.955311" elapsed="0.000616"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:32.951038" elapsed="0.004934"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:32.950657" elapsed="0.005365"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:32.940844" elapsed="0.015367">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:34.966249" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:34.966537" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:34.966794" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:34.959214" elapsed="0.008494">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.968355" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.969290" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.969754" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.970198" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.970645" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.971087" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.971553" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.972142" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:34.971738" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:34.971701" elapsed="0.000600"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.972829" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:34.972407" elapsed="0.000534"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:34.972377" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:34.973487" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:34.973089" elapsed="0.000507"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:34.973059" elapsed="0.000584"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:34.968921" elapsed="0.004768"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:34.968531" elapsed="0.005207"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:34.958020" elapsed="0.015936">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:36.982272" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:36.982396" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:36.982651" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:36.976063" elapsed="0.007489">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:36.984156" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:36.985085" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:36.985554" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:36.986117" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:36.986571" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:36.987019" 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-10-15T03:09:36.987488" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:36.988084" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:36.987675" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:36.987638" elapsed="0.000605"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:36.988756" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:36.988353" elapsed="0.000534"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:36.988322" elapsed="0.000613"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:36.989413" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:36.989039" elapsed="0.000521"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:36.989009" elapsed="0.000598"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:36.984689" elapsed="0.004963"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:36.984302" elapsed="0.005401"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:36.975197" elapsed="0.014728">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:39.001124" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:39.001254" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:39.001531" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:38.991971" elapsed="0.010523">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:39.003128" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:39.004119" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:39.004631" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:39.005118" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:39.005663" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:39.006161" 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-10-15T03:09:39.006671" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:39.007297" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:39.006888" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:39.006848" elapsed="0.000655"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:39.008059" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:39.007626" elapsed="0.000554"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:39.007591" elapsed="0.000731"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:39.008903" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:39.008442" elapsed="0.000581"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:39.008408" elapsed="0.000666"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:39.003692" elapsed="0.005432"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:39.003285" elapsed="0.005893"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:38.991138" elapsed="0.018240">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:41.017851" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:41.017973" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:41.018189" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:41.011374" elapsed="0.007717">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:41.019726" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:41.020664" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:41.021132" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:41.021585" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:41.022042" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:41.022494" 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-10-15T03:09:41.022953" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:41.023545" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:41.023137" elapsed="0.000519"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:41.023100" elapsed="0.000606"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:41.024211" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:41.023836" elapsed="0.000484"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:41.023784" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:41.024900" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:41.024499" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:41.024441" elapsed="0.000621"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:41.020252" elapsed="0.004855"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:41.019898" elapsed="0.005259"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:41.010546" elapsed="0.014802">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:43.034218" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:43.034340" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:43.034680" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:43.027339" elapsed="0.008237">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:43.036172" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:43.037169" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:43.037656" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:43.038109" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:43.038573" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:43.039024" 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-10-15T03:09:43.039494" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:43.040083" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:43.039676" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:43.039642" elapsed="0.000600"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:43.041181" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:43.040349" elapsed="0.000959"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:43.040318" elapsed="0.001041"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:43.041892" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:43.041494" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:43.041436" elapsed="0.000614"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:43.036697" elapsed="0.005398"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:43.036313" elapsed="0.005832"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:43.026530" elapsed="0.015805">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:45.050126" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:45.050249" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:45.050525" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:45.044326" elapsed="0.007089">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:45.052057" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:45.053008" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:45.053480" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:45.053931" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:45.054363" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:45.054851" 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-10-15T03:09:45.055406" elapsed="0.000072"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:45.056042" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:45.055626" elapsed="0.000527"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:45.055589" elapsed="0.000614"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:45.056718" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:45.056310" elapsed="0.000543"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:45.056278" elapsed="0.000624"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:45.057384" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:45.057009" elapsed="0.000515"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:45.056978" elapsed="0.000594"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:45.052614" elapsed="0.005005"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:45.052203" elapsed="0.005491"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:45.043496" elapsed="0.014410">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:47.066504" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:47.066631" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:47.066876" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:47.059932" elapsed="0.007834">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.068371" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.069300" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.069773" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.070229" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.070689" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.071242" elapsed="0.000052"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.071740" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.072330" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:47.071946" elapsed="0.000492"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:47.071909" elapsed="0.000608"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.073012" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:47.072621" elapsed="0.000501"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:47.072592" elapsed="0.000577"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:47.073670" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:47.073269" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:47.073240" elapsed="0.000612"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:47.068924" elapsed="0.004974"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:47.068548" elapsed="0.005398"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:47.059070" elapsed="0.015066">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:49.083199" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:49.083336" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:49.083635" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:49.076384" elapsed="0.008212">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:49.085263" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:49.086283" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:49.086810" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:49.087275" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:49.087767" elapsed="0.000065"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:49.088250" 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-10-15T03:09:49.088753" elapsed="0.000062"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:49.089385" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:49.088969" elapsed="0.000560"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:49.088931" elapsed="0.000653"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:49.090126" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:49.089701" elapsed="0.000542"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:49.089668" elapsed="0.000625"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:49.090863" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:49.090406" elapsed="0.000573"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:49.090374" elapsed="0.000655"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:49.085880" elapsed="0.005197"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:49.085426" elapsed="0.005705"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:49.075498" elapsed="0.015839">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:51.099747" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:51.099894" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:51.100115" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:51.093285" elapsed="0.007753">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:51.101860" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:51.102813" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:51.103258" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:51.103712" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:51.104162" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:51.104626" 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-10-15T03:09:51.105094" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:51.105696" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:51.105278" elapsed="0.000551"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:51.105242" elapsed="0.000640"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:51.106365" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:51.105990" elapsed="0.000513"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:51.105959" elapsed="0.000594"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:51.107059" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:51.106656" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:51.106626" elapsed="0.000588"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:51.102384" elapsed="0.004876"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:51.102018" elapsed="0.005291"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:51.092419" elapsed="0.015116">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:53.115932" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:53.116056" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:53.116271" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:53.109624" elapsed="0.007546">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:53.117810" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:53.118811" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:53.119271" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:53.119727" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:53.120177" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:53.120634" 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-10-15T03:09:53.121100" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:53.122166" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:53.121746" elapsed="0.000630"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:53.121246" elapsed="0.001184"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:53.122983" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:53.122575" elapsed="0.000520"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:53.122542" elapsed="0.000600"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:53.123651" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:53.123249" elapsed="0.000512"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:53.123218" elapsed="0.000611"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:53.118333" elapsed="0.005542"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:53.117961" elapsed="0.005967"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:53.108769" elapsed="0.015351">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:55.132692" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:55.132841" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:55.133065" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:55.126212" elapsed="0.007769">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.134598" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.135539" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.136007" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.136434" elapsed="0.000068"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.136911" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.137340" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.137831" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.138400" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:55.138018" elapsed="0.000526"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:55.137981" elapsed="0.000615"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.139105" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:55.138704" elapsed="0.000510"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:55.138672" elapsed="0.000590"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:55.139792" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:55.139367" elapsed="0.000539"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:55.139336" elapsed="0.000618"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:55.135133" elapsed="0.004867"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:55.134745" elapsed="0.005305"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:55.125337" elapsed="0.014904">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:57.148437" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:57.148705" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:57.148951" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:57.142277" elapsed="0.007585">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:57.150441" elapsed="0.000077"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:57.151384" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:57.151886" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:57.152319" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:57.152794" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:57.153224" 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-10-15T03:09:57.153700" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:57.154303" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:57.153912" elapsed="0.000504"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:57.153875" elapsed="0.000621"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:57.155021" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:57.154609" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:57.154577" elapsed="0.000605"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:57.155702" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:57.155290" elapsed="0.000546"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:57.155258" elapsed="0.000628"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:57.151008" elapsed="0.004924"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:57.150621" elapsed="0.005362"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:57.141416" elapsed="0.014759">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:09:59.162573" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:09:59.162655" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:09:59.162830" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:09:59.157680" elapsed="0.005716">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:59.163810" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:59.164374" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:59.164674" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:59.165041" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:59.165311" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:59.165599" 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-10-15T03:09:59.165898" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:59.166262" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:59.166017" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:59.165994" elapsed="0.000369"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:59.166687" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:59.166430" elapsed="0.000327"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:59.166411" elapsed="0.000393"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:09:59.167109" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:09:59.166870" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:09:59.166851" elapsed="0.000360"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:09:59.164139" elapsed="0.003102"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:09:59.163906" elapsed="0.003367"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:09:59.157090" elapsed="0.010309">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:01.176104" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:01.176228" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:01.176444" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:01.169730" elapsed="0.007617">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.178081" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.179186" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.179805" elapsed="0.000067"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.180349" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.180939" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.181421" elapsed="0.000115"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.182034" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.182726" elapsed="0.000074"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:01.182247" elapsed="0.000632"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:01.182201" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.183535" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:01.183068" elapsed="0.000590"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:01.183031" elapsed="0.000799"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:01.184362" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:01.183960" elapsed="0.000568"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:01.183924" elapsed="0.000663"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:01.178735" elapsed="0.005901"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:01.178253" elapsed="0.006437"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:10:01.168700" elapsed="0.016225">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:03.193596" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:03.193724" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:03.193973" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:03.187243" elapsed="0.007691">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.195572" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.197254" elapsed="0.000075"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.198244" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.198885" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.199436" elapsed="0.000101"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.200106" elapsed="0.000049"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.200663" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.201395" elapsed="0.000103"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:03.200895" elapsed="0.000720"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:03.200856" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.202440" elapsed="0.000098"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:03.201884" elapsed="0.000754"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:03.201837" elapsed="0.000870"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:03.203573" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:03.202992" elapsed="0.000743"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:03.202947" elapsed="0.000887"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:03.196122" elapsed="0.007783"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:03.195727" elapsed="0.008253"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:10:03.186344" elapsed="0.017906">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:05.212400" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:05.212594" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:05.212961" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:05.206366" elapsed="0.007512">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.214539" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.215509" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.215985" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.216424" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.216912" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.217346" elapsed="0.000050"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.218012" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.218723" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:05.218249" elapsed="0.000623"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:05.218203" elapsed="0.000723"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.219420" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:05.219037" elapsed="0.000557"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:05.219006" elapsed="0.000638"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:05.220193" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:05.219753" elapsed="0.000554"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:05.219721" elapsed="0.000634"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:05.215101" elapsed="0.005300"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:05.214700" elapsed="0.005782"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:10:05.205497" elapsed="0.015207">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:07.227596" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:07.227700" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:07.227902" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:07.222414" elapsed="0.006166">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:07.229092" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:07.229819" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:07.230136" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:07.230443" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:07.230806" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:07.231136" 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-10-15T03:10:07.231585" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:07.232036" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:07.231734" elapsed="0.000386"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:07.231704" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:07.232551" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:07.232245" elapsed="0.000391"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:07.232221" elapsed="0.000454"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:07.233056" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:07.232774" elapsed="0.000365"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:07.232733" elapsed="0.000442"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:07.229529" elapsed="0.003683"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:07.229214" elapsed="0.004037"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:10:07.221739" elapsed="0.011668">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:09.243842" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:09.243975" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:09.244226" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:09.236546" elapsed="0.008752">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.246064" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.247212" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.247792" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.248336" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.248880" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.249323" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.249873" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.250526" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:09.250101" elapsed="0.000541"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:09.250061" elapsed="0.000636"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.251285" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:09.250883" elapsed="0.000537"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:09.250832" elapsed="0.000683"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:09.252133" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:09.251628" elapsed="0.000662"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:09.251595" elapsed="0.000749"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:09.246719" elapsed="0.005689"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:09.246235" elapsed="0.006268"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:10:09.235485" elapsed="0.017229">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:11.260096" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:11.260292" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:11.260619" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:11.254587" elapsed="0.007333">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.262689" 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 the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.264137" elapsed="0.000072"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.264899" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.265626" elapsed="0.000073"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.266400" elapsed="0.000112"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.267178" elapsed="0.000069"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.267931" elapsed="0.000072"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.268832" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:11.268209" elapsed="0.000785"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:11.268164" elapsed="0.000905"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.269886" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:11.269232" elapsed="0.000821"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:11.269188" elapsed="0.000933"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.270881" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:11.270276" elapsed="0.000777"/>
</branch>
<status status="NOT RUN" start="2026-10-15T03:10:11.270232" elapsed="0.000893"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:11.263547" elapsed="0.007644"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:11.262931" elapsed="0.008337"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-10-15T03:10:11.253904" elapsed="0.017693">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T03:10:11.271894" level="FAIL">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 5 minutes. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T03:05:10.658827" elapsed="300.613359">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 5 minutes. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check Linear Topology.</doc>
<status status="FAIL" start="2026-10-15T03:05:10.658183" elapsed="300.614528">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 5 minutes. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:11.286512" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:11.286700" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:11.287150" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:11.278720" elapsed="0.009793">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.289483" elapsed="0.000080"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:11.290147" elapsed="0.000065"/>
</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-10-15T03:10:11.290879" elapsed="0.000063"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:11.277661" elapsed="0.013560">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:12.297926" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:12.298080" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:12.298299" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:12.292573" elapsed="0.006571">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:12.299810" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:12.300295" 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-10-15T03:10:12.300731" elapsed="0.000047"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:12.291976" elapsed="0.008947">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:13.308856" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:13.308981" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:13.309201" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:13.302669" elapsed="0.007456">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:13.310812" elapsed="0.000052"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:13.311241" elapsed="0.000042"/>
</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-10-15T03:10:13.311713" elapsed="0.000057"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:13.301807" elapsed="0.010157">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:14.318276" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:14.318506" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:14.318698" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:14.313272" elapsed="0.006078">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:14.319868" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:14.320174" 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-10-15T03:10:14.320511" elapsed="0.000033"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:14.312693" elapsed="0.007995">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:15.327623" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:15.327720" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:15.327903" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:15.322050" elapsed="0.006455">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:15.328986" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:15.329260" elapsed="0.000027"/>
</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-10-15T03:10:15.329566" elapsed="0.000027"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:15.321432" elapsed="0.008286">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:16.336539" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:16.336631" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:16.336889" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:16.331151" elapsed="0.006387">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:16.338016" elapsed="0.000036"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:16.338318" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:16.338660" elapsed="0.000121"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:16.330478" elapsed="0.008450">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:17.346990" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:17.347123" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:17.347384" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:17.340716" elapsed="0.007684">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:17.349105" elapsed="0.000053"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:17.349591" 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-10-15T03:10:17.350095" elapsed="0.000044"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:17.339813" elapsed="0.010530">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:18.357981" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:18.358107" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:18.358321" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:18.352056" elapsed="0.007175">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:18.359870" elapsed="0.000051"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:18.360299" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:18.360801" elapsed="0.000044"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:18.351173" elapsed="0.009863">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:19.369145" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:19.369271" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:19.369557" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:19.362870" elapsed="0.008292">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:19.371855" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:19.372310" 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-10-15T03:10:19.372838" elapsed="0.000047"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:19.361952" elapsed="0.011144">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:20.381257" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:20.381375" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:20.381809" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:20.374828" elapsed="0.007854">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:20.383281" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:20.383728" elapsed="0.000061"/>
</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-10-15T03:10:20.384182" elapsed="0.000041"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:20.373995" elapsed="0.010415">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:21.392927" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:21.393094" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:21.393339" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:21.386348" elapsed="0.008029">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:21.395158" elapsed="0.000056"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:21.395731" elapsed="0.000078"/>
</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-10-15T03:10:21.396232" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:21.385358" elapsed="0.011177">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:22.403504" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:22.403609" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:22.403890" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:22.397839" elapsed="0.006659">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:22.404990" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:22.405286" 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-10-15T03:10:22.405609" elapsed="0.000031"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:22.397198" elapsed="0.008600">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:23.413937" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:23.414060" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:23.414280" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:23.407635" elapsed="0.007614">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:23.415963" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:23.416611" elapsed="0.000073"/>
</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-10-15T03:10:23.417886" elapsed="0.000055"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:23.406698" elapsed="0.011453">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:24.427363" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:24.427531" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:24.427783" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:24.420078" elapsed="0.008606">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:24.429304" elapsed="0.000049"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:24.429779" 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-10-15T03:10:24.430286" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:24.419089" elapsed="0.011475">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:25.438524" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:25.438790" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:25.439029" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:25.432312" elapsed="0.007635">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:25.440610" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:25.441053" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:25.441586" elapsed="0.000048"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:25.431390" elapsed="0.010472">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:26.450845" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:26.450985" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:26.451211" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:26.443574" elapsed="0.008540">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:26.452785" elapsed="0.000052"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:26.453207" 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-10-15T03:10:26.453667" elapsed="0.000043"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:26.442753" elapsed="0.011172">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:27.464686" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:27.464836" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:27.465064" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:27.456337" elapsed="0.009637">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:27.466590" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:27.467040" 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-10-15T03:10:27.467510" elapsed="0.000132"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:27.455039" elapsed="0.012806">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:28.480347" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:28.480585" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:28.481095" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:28.471123" elapsed="0.011455">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:28.483644" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:28.484382" elapsed="0.000111"/>
</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-10-15T03:10:28.485209" elapsed="0.000072"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:28.468973" elapsed="0.016654">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:29.494113" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:29.494246" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:29.494530" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:29.487484" elapsed="0.008003">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:29.496150" elapsed="0.000052"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:29.496617" 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-10-15T03:10:29.497102" elapsed="0.000043"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:29.486602" elapsed="0.010744">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:30.506020" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:30.506141" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:30.506353" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:30.499098" elapsed="0.008259">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:30.508045" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:30.508497" 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-10-15T03:10:30.508972" elapsed="0.000044"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:30.498223" elapsed="0.010983">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:31.517634" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:31.517778" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:31.517995" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:31.510964" elapsed="0.007933">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:31.519510" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:31.519951" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:31.520392" elapsed="0.000041"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:31.510107" elapsed="0.010551">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:32.529918" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:32.530031" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:32.530214" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:32.522041" elapsed="0.008804">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:32.531304" elapsed="0.000038"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:32.531600" 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-10-15T03:10:32.531917" elapsed="0.000029"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:32.521349" elapsed="0.010733">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:33.541012" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:33.541161" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:33.541540" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:33.533956" elapsed="0.008466">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:33.543055" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:33.543561" elapsed="0.000065"/>
</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-10-15T03:10:33.544251" elapsed="0.000066"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:33.532994" elapsed="0.011637">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:34.553159" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:34.553277" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:34.553529" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:34.546440" elapsed="0.007951">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:34.555008" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:34.555424" 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-10-15T03:10:34.555914" elapsed="0.000041"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:34.545620" elapsed="0.010521">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:35.562623" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:35.562706" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:35.562854" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:35.557199" elapsed="0.006092">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:35.563664" elapsed="0.000028"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:35.563891" 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-10-15T03:10:35.564134" elapsed="0.000020"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:35.556760" elapsed="0.007507">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:36.573017" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:36.573242" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:36.573509" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:36.566065" elapsed="0.008364">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:36.575113" elapsed="0.000052"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:36.575597" 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-10-15T03:10:36.576095" elapsed="0.000044"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:36.565151" elapsed="0.011193">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:37.585382" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:37.585542" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:37.585795" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:37.578750" elapsed="0.007936">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:37.587282" elapsed="0.000048"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:37.587752" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:37.588190" elapsed="0.000041"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:37.577238" elapsed="0.011180">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:38.597078" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:38.597193" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:38.597399" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:38.590274" elapsed="0.008160">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:38.599111" elapsed="0.000048"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:38.599556" 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-10-15T03:10:38.600020" elapsed="0.000131"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:38.589303" elapsed="0.011041">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:39.607189" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:39.607270" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:39.607415" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:39.601705" elapsed="0.006316">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:39.608401" elapsed="0.000030"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:39.608688" elapsed="0.000061"/>
</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-10-15T03:10:39.609005" elapsed="0.000026"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:39.601122" elapsed="0.008029">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:40.615621" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:40.615704" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:40.615869" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:40.610416" elapsed="0.006066">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:40.616891" elapsed="0.000032"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:40.617172" elapsed="0.000028"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:40.617482" elapsed="0.000031"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:40.609835" elapsed="0.007807">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:41.627956" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:41.628082" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:41.628326" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:41.619982" elapsed="0.009507">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:41.630170" 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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:41.630827" elapsed="0.000069"/>
</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-10-15T03:10:41.631533" elapsed="0.000067"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:41.619101" elapsed="0.012800">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T03:10:41.632157" level="FAIL">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:11.275200" elapsed="30.357225">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-10-15T03:10:11.273601" elapsed="30.359323">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:41.643067" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 path_url=/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:41.643211" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '402'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/opendaylight-inventory:nodes&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:41.643441" level="FAIL">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:41.635846" elapsed="0.008697">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:41.645327" elapsed="0.000070"/>
</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 the `item` is found from the `container`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:41.646001" elapsed="0.000063"/>
</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-10-15T03:10:41.646701" elapsed="0.000093"/>
</kw>
<arg>${less_groups}</arg>
<doc>Check number of groups in the inventory.</doc>
<status status="FAIL" start="2026-10-15T03:10:41.634696" elapsed="0.012368">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-10-15T03:10:41.633602" elapsed="0.013914">Url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:41.651416" elapsed="0.000438"/>
</kw>
<status status="PASS" start="2026-10-15T03:10:41.650740" elapsed="0.001220"/>
</branch>
<status status="PASS" start="2026-10-15T03:10:41.650656" elapsed="0.001375"/>
</if>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:10:41.653213" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:10:41.652564" elapsed="0.000708"/>
</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-10-15T03:10:41.655545" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-15T03:10:41.654875" elapsed="0.001158"/>
</branch>
<status status="PASS" start="2026-10-15T03:10:41.654820" elapsed="0.001289"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T03:10:41.664978" 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-10-15T03:10:41.656579" elapsed="0.008544"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T03:10:41.720557" level="INFO">*** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=186 byte_count=15597 flow_count=1
*** s2 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=358 byte_count=30112 flow_count=1
*** s3 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=187 byte_count=15687 flow_count=1
mininet&gt;</msg>
<msg time="2026-10-15T03:10:41.720771" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=186 byte_count=15597 flow_count=1
*** 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-10-15T03:10:41.665616" elapsed="0.055183"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-15T03:10:41.720858" elapsed="0.000048"/>
</return>
<msg time="2026-10-15T03:10:41.721030" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=186 byte_count=15597 flow_count=1
*** 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-10-15T03:10:41.653989" elapsed="0.067067"/>
</kw>
<kw name="Get Regexp Matches" owner="String">
<msg time="2026-10-15T03:10:41.721548" level="INFO">${flows} = ['1', '1', '1']</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-10-15T03:10:41.721263" elapsed="0.000311"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-15T03:10:41.722214" level="INFO">${total_flows} = 3</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-10-15T03:10:41.721768" elapsed="0.000474"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-10-15T03:10:41.722865" level="FAIL">3.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-10-15T03:10:41.722512" elapsed="0.000424">3.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-10-15T03:10:41.649801" elapsed="0.073234">3.0 != 300.0</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-10-15T03:10:41.648361" elapsed="0.074851">3.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-10-15T03:10:41.726550" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:41.726249" elapsed="0.000368"/>
</branch>
<status status="PASS" start="2026-10-15T03:10:41.726226" elapsed="0.000416"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-15T03:10:41.729042" 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-10-15T03:10:41.726794" elapsed="0.002319"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-10-15T03:10:41.972601" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 5 links
.....
*** Stopping 3 switches
s1 s2 s3 
*** Stopping 3 hosts
h1 h2 h3 
*** Done
completed in 860.827 seconds
[?2004h[jenkins@releng-38703-72-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-10-15T03:10:41.729287" elapsed="0.243461"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T03:10:41.972990" elapsed="0.000186"/>
</kw>
<doc>Stops Mininet and exits session ${mininet_conn}</doc>
<status status="PASS" start="2026-10-15T03:10:41.725936" elapsed="0.247301"/>
</kw>
<doc>Stop Mininet.</doc>
<status status="PASS" start="2026-10-15T03:10:41.723560" elapsed="0.249801"/>
</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-10-15T03:10:41.978732" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:41.978787" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:41.978905" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:41.975087" elapsed="0.004237">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:41.979617" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:41.979930" elapsed="0.000020"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:41.979761" elapsed="0.000220"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:41.979687" elapsed="0.000320"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T03:10:41.974767" elapsed="0.005329">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:42.985931" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:42.986106" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:42.986262" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:42.981483" elapsed="0.005297">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:42.987199" elapsed="0.000034"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:42.987616" elapsed="0.000022"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:42.987394" elapsed="0.000277"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:42.987306" elapsed="0.000391"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T03:10:42.980845" elapsed="0.006966">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:43.996537" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:43.996669" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:43.996926" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:43.989829" elapsed="0.008059">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:43.998595" 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 the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:43.999419" elapsed="0.000110"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:43.998913" elapsed="0.000723"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:43.998791" elapsed="0.000947"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T03:10:43.988839" elapsed="0.011112">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:45.011076" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:45.011206" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:45.011508" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:45.002316" elapsed="0.010232">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:45.013178" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:45.014029" elapsed="0.000046"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:45.013639" elapsed="0.000597"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:45.013507" elapsed="0.000789"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T03:10:45.001020" elapsed="0.013514">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:46.023051" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:46.023174" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:46.023391" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:46.016619" elapsed="0.007674">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:46.024935" elapsed="0.000049"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:46.025628" elapsed="0.000044"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:46.025211" elapsed="0.000552"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:46.025087" elapsed="0.000730"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T03:10:46.015747" elapsed="0.010261">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:47.034804" level="INFO">GET Request : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 path_url=/rests/data/network-topology:network-topology?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:47.034932" level="INFO">GET Response : url=http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig 
 status=404, reason=Not Found 
 headers={'Cache-Control': 'must-revalidate,no-cache,no-store', 'Content-Type': 'text/html;charset=iso-8859-1', 'Content-Length': '407'} 
 body=&lt;html&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/&gt;
&lt;title&gt;Error 404 Not Found&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;&lt;h2&gt;HTTP ERROR 404 Not Found&lt;/h2&gt;
&lt;table&gt;
&lt;tr&gt;&lt;th&gt;URI:&lt;/th&gt;&lt;td&gt;/rests/data/network-topology:network-topology&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;STATUS:&lt;/th&gt;&lt;td&gt;404&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;MESSAGE:&lt;/th&gt;&lt;td&gt;Not Found&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th&gt;SERVLET:&lt;/th&gt;&lt;td&gt;default&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;
 
 </msg>
<msg time="2026-10-15T03:10:47.035160" level="FAIL">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-10-15T03:10:47.028211" elapsed="0.007896">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:47.036789" elapsed="0.000051"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if the `container` contains the `item`.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:47.037629" elapsed="0.000047"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-10-15T03:10:47.037078" elapsed="0.000697"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-10-15T03:10:47.036950" elapsed="0.000895"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-10-15T03:10:47.027101" elapsed="0.011013">Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<msg time="2026-10-15T03:10:47.038323" level="FAIL">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 5 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</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-10-15T03:10:41.974152" elapsed="5.064422">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 5 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</kw>
<doc>Check no switches in topology.</doc>
<status status="FAIL" start="2026-10-15T03:10:41.973679" elapsed="5.065247">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 5 seconds. The last error was: Url: http://10.30.171.74:8181/rests/data/network-topology:network-topology?content=nonconfig Expected status: 404 != 200</status>
</test>
<kw name="Final Phase" type="TEARDOWN">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-15T03:10:47.041412" 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 variable.</doc>
<status status="PASS" start="2026-10-15T03:10:47.040795" elapsed="0.000705"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-15T03:10:47.045975" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-15T03:10:47.045321" elapsed="0.000776"/>
</branch>
<status status="PASS" start="2026-10-15T03:10:47.045268" elapsed="0.000879"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-15T03:10:47.046932" 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-10-15T03:10:47.047142" 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-10-15T03:10:47.046601" elapsed="0.000596"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:10:47.048864" level="INFO">Attempting to execute command "sudo iptables -v -F" on remote system "10.30.171.74" 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-10-15T03:10:47.047646" elapsed="0.001322"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-15T03:10:47.050158" level="INFO">${conn_id} = 33</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-15T03:10:47.049373" elapsed="0.000846"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-15T03:10:47.052054" level="INFO">Length is 0.</msg>
<msg time="2026-10-15T03:10:47.052215" 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-10-15T03:10:47.051431" elapsed="0.000835"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:10:47.052634" elapsed="0.000676"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-15T03:10:47.055594" level="INFO">Logging into '10.30.171.74:22' as 'jenkins'.</msg>
<msg time="2026-10-15T03:10:47.733351" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-194-generic x86_64)

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

 System information as of Thu Oct 15 03:10:47 UTC 2026

  System load:  0.12               Processes:             121
  Usage of /:   13.9% of 77.35GB   Users logged in:       0
  Memory usage: 8%                 IPv4 address for ens3: 10.30.171.74
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

14 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.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 15 03:05:10 2026 from 10.30.170.117
[?2004h[jenkins@releng-38703-72-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-10-15T03:10:47.054909" elapsed="0.678606"/>
</kw>
<msg time="2026-10-15T03:10:47.733594" 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-10-15T03:10:47.053732" elapsed="0.679948"/>
</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-10-15T03:10:47.050741" elapsed="0.683057"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-15T03:10:47.734266" level="INFO">Executing command 'sudo iptables -v -F'.</msg>
<msg time="2026-10-15T03:10:47.767277" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-15T03:10:47.767651" 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-10-15T03:10:47.767776" 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-10-15T03:10:47.734057" elapsed="0.033773"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T03:10:47.768273" elapsed="0.000531"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-15T03:10:47.770029" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-15T03:10:47.769362" elapsed="0.000761"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T03:10:47.770580" elapsed="0.000039"/>
</return>
<status status="NOT RUN" start="2026-10-15T03:10:47.770291" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-10-15T03:10:47.770242" elapsed="0.000513"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-10-15T03:10:47.771058" elapsed="0.000065"/>
</return>
<status status="PASS" start="2026-10-15T03:10:47.770866" elapsed="0.000329"/>
</branch>
<status status="PASS" start="2026-10-15T03:10:47.770834" elapsed="0.000415"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-15T03:10:47.771322" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-15T03:10:47.773073" elapsed="0.000725"/>
</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-10-15T03:10:47.774234" elapsed="0.000498"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-15T03:10:47.775071" elapsed="0.000213"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-15T03:10:47.772201" elapsed="0.003189"/>
</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-10-15T03:10:47.044334" elapsed="0.731243"/>
</kw>
<msg time="2026-10-15T03:10:47.775687" 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-10-15T03:10:47.043032" elapsed="0.732802"/>
</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-10-15T03:10:47.042012" elapsed="0.733976"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:47.783039" level="INFO">DELETE Request : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes 
 path_url=/rests/data/opendaylight-inventory:nodes 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:47.783133" level="INFO">DELETE Response : url=http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes 
 status=404, reason=Not Found 
 headers={'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-15T03:10:47.783342" level="FAIL">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes</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-10-15T03:10:47.777110" elapsed="0.007025">HTTPError: 404 Client Error: Not Found for url: http://10.30.171.74:8181/rests/data/opendaylight-inventory:nodes</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 errorw.</doc>
<status status="PASS" start="2026-10-15T03:10:47.776317" elapsed="0.007956"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-10-15T03:10:47.784807" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-15T03:10:47.784624" elapsed="0.000482"/>
</kw>
<doc>Delete all sessions.</doc>
<status status="PASS" start="2026-10-15T03:10:47.040233" elapsed="0.744989"/>
</kw>
<doc>Test reconciliation of chained groups and flows after switch connection and controller are restarted.</doc>
<status status="FAIL" start="2026-10-15T02:56:17.384051" elapsed="870.401236"/>
</suite>
<status status="FAIL" start="2026-10-15T02:56:17.382900" elapsed="870.404673"/>
</suite>
<status status="FAIL" start="2026-10-15T02:48:13.597011" elapsed="1354.193826"/>
</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>
</errors>
</robot>
